From b6d8a3cebd950076c647afb6796155d47157692c Mon Sep 17 00:00:00 2001 From: "Kayashov.SM" Date: Wed, 12 Mar 2025 17:54:16 +0400 Subject: [PATCH] Initial commit --- front/Dockerfile | 5 + front/README.md | 70 + front/default.conf | 26 + front/package-lock.json | 19344 ++++++++++++++++ front/package.json | 66 + front/public/assets/avatar.png | Bin 0 -> 32500 bytes front/public/assets/cocktails/herosim.jpg | Bin 0 -> 49754 bytes front/public/assets/error-404.png | Bin 0 -> 169567 bytes front/public/assets/ingredients/Aperol.png | Bin 0 -> 170143 bytes front/public/assets/logo--dark.svg | 23 + front/public/assets/logo-emblem--dark.svg | 23 + front/public/assets/logo-emblem.svg | 23 + front/public/assets/logo.svg | 23 + front/public/assets/qr.png | Bin 0 -> 159199 bytes front/public/background.webp | Bin 0 -> 17178 bytes front/public/favicon.ico | Bin 0 -> 5556 bytes front/public/img/background.png | Bin 0 -> 394390 bytes front/public/index.html | 43 + front/public/logo192.png | Bin 0 -> 3186 bytes front/public/logo512.png | Bin 0 -> 13956 bytes front/public/manifest.json | 15 + front/public/robots.txt | 3 + front/src/Config.js | 7 + front/src/Dockerfile | 5 + front/src/app/App.js | 51 + front/src/app/HomeRedirect.js | 10 + front/src/app/NavigationRoutes.js | 151 + front/src/app/layout/PublicLayout.js | 58 + front/src/app/layout/UserLayout.js | 31 + front/src/app/pages/MyBarPage.js | 62 + front/src/app/pages/VisitorPage.js | 77 + front/src/app/pages/auth/sign-in/loginPage.js | 11 + .../app/pages/auth/sign-in/telegram-code.js | 30 + .../app/pages/cocktails/AllCocktailsPage.js | 7 + .../pages/cocktails/CocktailMenuBarPage.js | 127 + .../pages/cocktails/CocktailsPageContent.js | 333 + .../app/pages/cocktails/EditCocktailPage.js | 258 + front/src/app/pages/cocktails/MenuPage.js | 7 + .../pages/ingredients/EditIngredientPage.js | 169 + .../app/pages/ingredients/IngredientsPage.js | 153 + front/src/app/pages/notFound/NotFoundPage.js | 38 + front/src/app/pages/queue/MyQueuePage.js | 7 + front/src/app/pages/queue/QueueContent.js | 82 + front/src/app/pages/queue/QueuePage.js | 10 + .../components/Ingredients/IngredientCard.js | 37 + .../Ingredients/IngredientInfoModal.js | 37 + .../components/Ingredients/IngredientList.js | 75 + front/src/components/auth/guest-guard.js | 48 + front/src/components/auth/sign-in-form.js | 135 + front/src/components/bar/BarItem.js | 40 + front/src/components/bar/BarList.js | 70 + front/src/components/cocktails/CheckMarks.js | 68 + front/src/components/cocktails/Cocktail.js | 113 + .../components/cocktails/CocktailInfoModal.js | 180 + .../cocktails/CocktailItemStyled.js | 12 + .../components/cocktails/CocktailListCard.js | 44 + .../src/components/cocktails/CocktailsList.js | 76 + .../cocktails/EditCocktailReceipt.js | 167 + front/src/components/cocktails/FilterBlock.js | 160 + front/src/components/cocktails/NoResult.js | 17 + front/src/components/cocktails/SelectEdit.js | 25 + front/src/components/cocktails/sortingList.js | 27 + front/src/components/core/Loading.js | 12 + .../components/core/LocalizationProvider.js | 10 + front/src/components/core/Logo.js | 38 + .../src/components/core/ModalDialogStyled.js | 9 + front/src/components/core/NoSsr.js | 25 + front/src/components/core/TabPanel.js | 24 + front/src/components/core/ThemeSwitch.js | 81 + front/src/components/core/UserPopover.js | 92 + .../components/core/descendingComparator.js | 29 + front/src/components/core/getComparator.js | 10 + front/src/components/core/groupByForLoop.js | 14 + front/src/components/core/navIcons.js | 37 + front/src/components/core/tabProps.js | 6 + front/src/components/navigation/MainNav.js | 65 + front/src/components/navigation/MobileNav.js | 38 + front/src/components/navigation/NavItem.js | 74 + .../components/navigation/NavigationMenu.js | 56 + front/src/components/navigation/SideNav.js | 37 + front/src/components/orders/EnhancedTable.js | 113 + .../components/orders/EnhancedTableHead.js | 32 + .../components/orders/EnhancedTableToolbar.js | 64 + front/src/components/orders/OrderModal.js | 95 + .../src/components/orders/createHeadCelll.js | 9 + front/src/components/visitor/VisitorItem.js | 49 + front/src/context/AuthContext.js | 49 + front/src/context/UserContext.js | 66 + front/src/hooks/useAlert.js | 32 + front/src/hooks/useAuth.js | 14 + front/src/hooks/usePopover.js | 20 + front/src/hooks/useSelection.js | 47 + front/src/hooks/useUser.js | 13 + front/src/index.css | 13 + front/src/index.js | 13 + front/src/lib/DefaultLogger.js | 4 + front/src/lib/Logger.js | 65 + front/src/lib/TokenUtil.js | 34 + front/src/lib/clients/AuthClient.js | 9 + front/src/lib/clients/UserClient.js | 17 + front/src/lib/clients/api.js | 16 + front/src/lib/getSiteUrl.js | 11 + front/src/lib/isNavItemActive.js | 25 + front/src/lib/sliceData.js | 18 + front/src/logo.svg | 23 + front/src/navItems.js | 14 + front/src/path.js | 24 + front/src/requests.js | 67 + front/src/styles/global.css | 33 + front/src/styles/theme/color-schemes.js | 140 + front/src/styles/theme/colors.js | 97 + front/src/styles/theme/components/avatar.js | 3 + front/src/styles/theme/components/button.js | 11 + .../styles/theme/components/card-content.js | 3 + .../styles/theme/components/card-header.js | 4 + front/src/styles/theme/components/card.js | 17 + .../src/styles/theme/components/components.js | 25 + front/src/styles/theme/components/link.js | 8 + front/src/styles/theme/components/stack.js | 1 + front/src/styles/theme/components/tab.js | 14 + .../src/styles/theme/components/table-body.js | 10 + .../src/styles/theme/components/table-cell.js | 6 + .../src/styles/theme/components/table-head.js | 13 + front/src/styles/theme/create-theme.js | 16 + front/src/styles/theme/shadows.js | 27 + front/src/styles/theme/types.d.ts | 6 + front/src/styles/theme/typography.js | 23 + .../ru/kayashov/bar/MyBarApplication.java | 13 + .../bar/bot/annotation/CommandData.java | 15 + .../bar/bot/annotation/FilterTitle.java | 12 + .../bar/bot/config/TelegramBotConfig.java | 28 + .../bar/bot/config/TelegramBotMapper.java | 41 + .../bar/bot/config/TelegramBotMapperImpl.java | 128 + .../bar/bot/config/TelegramBotProperty.java | 17 + .../bar/bot/config/TelegramExecutorBot.java | 138 + .../java/ru/kayashov/bar/bot/domain/Bot.java | 26 + .../bot/domain/command/CommandContainer.java | 52 + .../bar/bot/domain/command/api/Command.java | 45 + .../bot/domain/command/impl/HideCommand.java | 24 + .../bot/domain/command/impl/LoginCommand.java | 49 + .../bot/domain/command/impl/StartCommand.java | 60 + .../domain/command/impl/UnknownCommand.java | 27 + .../inline/InlineKeyboardMarker.java | 157 + .../keyboards/reply/ReplyKeyboardMarker.java | 37 + .../domain/methods/AbstractDeleteMessage.java | 22 + .../methods/AbstractInlineKeyboard.java | 25 + .../bot/domain/methods/AbstractMethod.java | 13 + .../methods/AbstractSendKeyboardMessage.java | 23 + .../domain/methods/AbstractSendMessage.java | 19 + .../domain/model/AbstractCallbackQuery.java | 11 + .../bar/bot/domain/model/AbstractChat.java | 12 + .../bot/domain/model/AbstractKeyboard.java | 16 + .../domain/model/AbstractKeyboardButton.java | 21 + .../bar/bot/domain/model/AbstractMessage.java | 13 + .../bar/bot/domain/model/AbstractUpdate.java | 15 + .../domain/model/pojo/CarGenerationDto.java | 13 + .../bar/bot/domain/model/pojo/CarMarkDto.java | 13 + .../bot/domain/model/pojo/CarModelDto.java | 13 + .../domain/model/pojo/FindPageableDto.java | 21 + .../bot/domain/model/pojo/FindServiceDto.java | 12 + .../bot/domain/model/pojo/LocationDto.java | 18 + .../bot/domain/model/pojo/PageableDto.java | 12 + .../bar/bot/domain/utils/MethodUtils.java | 40 + .../kayashov/bar/config/ExecutorConfig.java | 16 + .../bar/controller/AuthController.java | 86 + .../bar/controller/BarController.java | 142 + .../bar/controller/CocktailController.java | 118 + .../bar/controller/IngredientController.java | 71 + .../bar/controller/OrderController.java | 82 + .../bar/controller/VisitorController.java | 36 + .../bar/controller/dto/AuthRequestDto.java | 13 + .../bar/controller/dto/AuthResponseDto.java | 13 + .../kayashov/bar/controller/dto/ErrorDto.java | 12 + .../bar/controller/dto/OrderResponseDto.java | 24 + .../controller/dto/SessionResponseDto.java | 21 + .../controller/dto/VisitorResponseDto.java | 37 + .../controller/dto/bar/BarResponseDto.java | 14 + .../dto/bar/CategoryResponseDto.java | 19 + .../controller/dto/bar/GlassResponseDto.java | 19 + .../controller/dto/bar/TagResponseDto.java | 19 + .../cocktail/CocktailFilterRequestDto.java | 27 + .../cocktail/CocktailForListResponseDto.java | 91 + .../dto/cocktail/CocktailModalDto.java | 23 + .../cocktail/CocktailSimpleResponseDto.java | 28 + .../dto/cocktail/RatingResponseDto.java | 11 + .../dto/cocktail/ReceiptResponseDto.java | 31 + .../controller/dto/cocktail/SortingEnum.java | 32 + .../dto/ingredient/IngredientResponseDto.java | 41 + .../IngredientSimpleResponseDto.java | 19 + .../dto/ingredient/TypeResponseDto.java | 19 + .../kayashov/bar/mapper/CocktailMapper.java | 227 + .../kayashov/bar/mapper/IngredientMapper.java | 49 + .../java/ru/kayashov/bar/model/Cocktail.java | 60 + .../ru/kayashov/bar/model/Ingredient.java | 24 + .../bar/model/api/cocktail/Cocktails.java | 13 + .../bar/model/api/cocktail/Ingredients.java | 13 + .../bar/model/api/translate/Request.java | 23 + .../bar/model/api/translate/Response.java | 12 + .../bar/model/api/translate/Translate.java | 10 + .../bar/model/entity/AlcoholicEntity.java | 27 + .../kayashov/bar/model/entity/BarEntity.java | 35 + .../model/entity/BarIngredientStorage.java | 28 + .../bar/model/entity/BarResident.java | 36 + .../bar/model/entity/CategoryEntity.java | 26 + .../bar/model/entity/CocktailEntity.java | 69 + .../bar/model/entity/GlassEntity.java | 29 + .../bar/model/entity/IngredientEntity.java | 48 + .../bar/model/entity/OrderStatus.java | 5 + .../bar/model/entity/ParserEntity.java | 24 + .../ru/kayashov/bar/model/entity/Pay.java | 37 + .../ru/kayashov/bar/model/entity/Rating.java | 30 + .../bar/model/entity/ReceiptEntity.java | 37 + .../bar/model/entity/SessionEntity.java | 30 + .../kayashov/bar/model/entity/StopList.java | 26 + .../kayashov/bar/model/entity/TagEntity.java | 38 + .../kayashov/bar/model/entity/TypeEntity.java | 35 + .../ru/kayashov/bar/model/entity/Unit.java | 25 + .../bar/model/entity/UnitRepository.java | 10 + .../kayashov/bar/model/entity/UserRole.java | 27 + .../ru/kayashov/bar/model/entity/Visitor.java | 80 + .../bar/repository/AlcoholicRepository.java | 12 + .../bar/repository/BarEntityRepository.java | 7 + .../BarIngredientStorageRepository.java | 7 + .../bar/repository/BarResidentRepository.java | 7 + .../bar/repository/CategoryRepository.java | 13 + .../bar/repository/CocktailRepository.java | 10 + .../bar/repository/GlassRepository.java | 13 + .../bar/repository/IngredientRepository.java | 18 + .../bar/repository/OrdersRepository.java | 12 + .../repository/ParserEntityRepository.java | 7 + .../bar/repository/RatingRepository.java | 11 + .../bar/repository/ReceiptRepository.java | 15 + .../bar/repository/SessionRepository.java | 11 + .../bar/repository/StopListRepository.java | 7 + .../bar/repository/TagRepository.java | 13 + .../bar/repository/TypeRepository.java | 18 + .../bar/repository/VisitorsRepository.java | 14 + .../ru/kayashov/bar/schedule/Repairer.java | 179 + .../bar/security/CustomUserDetailService.java | 40 + .../kayashov/bar/security/JwtTokenFilter.java | 63 + .../bar/security/JwtTokenProvider.java | 90 + .../kayashov/bar/security/SecurityConfig.java | 84 + .../kayashov/bar/service/CocktailService.java | 476 + .../bar/service/IngredientService.java | 109 + .../ru/kayashov/bar/service/OrderService.java | 104 + .../bar/service/ParserQueueService.java | 55 + .../ru/kayashov/bar/service/RestUtil.java | 22 + .../kayashov/bar/service/SessionService.java | 190 + .../kayashov/bar/service/VisitorService.java | 78 + .../cocktail/CocktailApiService.java | 47 + .../translate/TranslateService.java | 53 + src/main/resources/META-INF/MANIFEST.MF | 3 + src/main/resources/application.properties | 20 + .../kayashov/bar/MyBarApplicationTests.java | 8 + 254 files changed, 29963 insertions(+) create mode 100644 front/Dockerfile create mode 100644 front/README.md create mode 100644 front/default.conf create mode 100644 front/package-lock.json create mode 100644 front/package.json create mode 100644 front/public/assets/avatar.png create mode 100644 front/public/assets/cocktails/herosim.jpg create mode 100644 front/public/assets/error-404.png create mode 100644 front/public/assets/ingredients/Aperol.png create mode 100644 front/public/assets/logo--dark.svg create mode 100644 front/public/assets/logo-emblem--dark.svg create mode 100644 front/public/assets/logo-emblem.svg create mode 100644 front/public/assets/logo.svg create mode 100644 front/public/assets/qr.png create mode 100644 front/public/background.webp create mode 100644 front/public/favicon.ico create mode 100644 front/public/img/background.png create mode 100644 front/public/index.html create mode 100644 front/public/logo192.png create mode 100644 front/public/logo512.png create mode 100644 front/public/manifest.json create mode 100644 front/public/robots.txt create mode 100644 front/src/Config.js create mode 100644 front/src/Dockerfile create mode 100644 front/src/app/App.js create mode 100644 front/src/app/HomeRedirect.js create mode 100644 front/src/app/NavigationRoutes.js create mode 100644 front/src/app/layout/PublicLayout.js create mode 100644 front/src/app/layout/UserLayout.js create mode 100644 front/src/app/pages/MyBarPage.js create mode 100644 front/src/app/pages/VisitorPage.js create mode 100644 front/src/app/pages/auth/sign-in/loginPage.js create mode 100644 front/src/app/pages/auth/sign-in/telegram-code.js create mode 100644 front/src/app/pages/cocktails/AllCocktailsPage.js create mode 100644 front/src/app/pages/cocktails/CocktailMenuBarPage.js create mode 100644 front/src/app/pages/cocktails/CocktailsPageContent.js create mode 100644 front/src/app/pages/cocktails/EditCocktailPage.js create mode 100644 front/src/app/pages/cocktails/MenuPage.js create mode 100644 front/src/app/pages/ingredients/EditIngredientPage.js create mode 100644 front/src/app/pages/ingredients/IngredientsPage.js create mode 100644 front/src/app/pages/notFound/NotFoundPage.js create mode 100644 front/src/app/pages/queue/MyQueuePage.js create mode 100644 front/src/app/pages/queue/QueueContent.js create mode 100644 front/src/app/pages/queue/QueuePage.js create mode 100644 front/src/components/Ingredients/IngredientCard.js create mode 100644 front/src/components/Ingredients/IngredientInfoModal.js create mode 100644 front/src/components/Ingredients/IngredientList.js create mode 100644 front/src/components/auth/guest-guard.js create mode 100644 front/src/components/auth/sign-in-form.js create mode 100644 front/src/components/bar/BarItem.js create mode 100644 front/src/components/bar/BarList.js create mode 100644 front/src/components/cocktails/CheckMarks.js create mode 100644 front/src/components/cocktails/Cocktail.js create mode 100644 front/src/components/cocktails/CocktailInfoModal.js create mode 100644 front/src/components/cocktails/CocktailItemStyled.js create mode 100644 front/src/components/cocktails/CocktailListCard.js create mode 100644 front/src/components/cocktails/CocktailsList.js create mode 100644 front/src/components/cocktails/EditCocktailReceipt.js create mode 100644 front/src/components/cocktails/FilterBlock.js create mode 100644 front/src/components/cocktails/NoResult.js create mode 100644 front/src/components/cocktails/SelectEdit.js create mode 100644 front/src/components/cocktails/sortingList.js create mode 100644 front/src/components/core/Loading.js create mode 100644 front/src/components/core/LocalizationProvider.js create mode 100644 front/src/components/core/Logo.js create mode 100644 front/src/components/core/ModalDialogStyled.js create mode 100644 front/src/components/core/NoSsr.js create mode 100644 front/src/components/core/TabPanel.js create mode 100644 front/src/components/core/ThemeSwitch.js create mode 100644 front/src/components/core/UserPopover.js create mode 100644 front/src/components/core/descendingComparator.js create mode 100644 front/src/components/core/getComparator.js create mode 100644 front/src/components/core/groupByForLoop.js create mode 100644 front/src/components/core/navIcons.js create mode 100644 front/src/components/core/tabProps.js create mode 100644 front/src/components/navigation/MainNav.js create mode 100644 front/src/components/navigation/MobileNav.js create mode 100644 front/src/components/navigation/NavItem.js create mode 100644 front/src/components/navigation/NavigationMenu.js create mode 100644 front/src/components/navigation/SideNav.js create mode 100644 front/src/components/orders/EnhancedTable.js create mode 100644 front/src/components/orders/EnhancedTableHead.js create mode 100644 front/src/components/orders/EnhancedTableToolbar.js create mode 100644 front/src/components/orders/OrderModal.js create mode 100644 front/src/components/orders/createHeadCelll.js create mode 100644 front/src/components/visitor/VisitorItem.js create mode 100644 front/src/context/AuthContext.js create mode 100644 front/src/context/UserContext.js create mode 100644 front/src/hooks/useAlert.js create mode 100644 front/src/hooks/useAuth.js create mode 100644 front/src/hooks/usePopover.js create mode 100644 front/src/hooks/useSelection.js create mode 100644 front/src/hooks/useUser.js create mode 100644 front/src/index.css create mode 100644 front/src/index.js create mode 100644 front/src/lib/DefaultLogger.js create mode 100644 front/src/lib/Logger.js create mode 100644 front/src/lib/TokenUtil.js create mode 100644 front/src/lib/clients/AuthClient.js create mode 100644 front/src/lib/clients/UserClient.js create mode 100644 front/src/lib/clients/api.js create mode 100644 front/src/lib/getSiteUrl.js create mode 100644 front/src/lib/isNavItemActive.js create mode 100644 front/src/lib/sliceData.js create mode 100644 front/src/logo.svg create mode 100644 front/src/navItems.js create mode 100644 front/src/path.js create mode 100644 front/src/requests.js create mode 100644 front/src/styles/global.css create mode 100644 front/src/styles/theme/color-schemes.js create mode 100644 front/src/styles/theme/colors.js create mode 100644 front/src/styles/theme/components/avatar.js create mode 100644 front/src/styles/theme/components/button.js create mode 100644 front/src/styles/theme/components/card-content.js create mode 100644 front/src/styles/theme/components/card-header.js create mode 100644 front/src/styles/theme/components/card.js create mode 100644 front/src/styles/theme/components/components.js create mode 100644 front/src/styles/theme/components/link.js create mode 100644 front/src/styles/theme/components/stack.js create mode 100644 front/src/styles/theme/components/tab.js create mode 100644 front/src/styles/theme/components/table-body.js create mode 100644 front/src/styles/theme/components/table-cell.js create mode 100644 front/src/styles/theme/components/table-head.js create mode 100644 front/src/styles/theme/create-theme.js create mode 100644 front/src/styles/theme/shadows.js create mode 100644 front/src/styles/theme/types.d.ts create mode 100644 front/src/styles/theme/typography.js create mode 100644 src/main/java/ru/kayashov/bar/MyBarApplication.java create mode 100644 src/main/java/ru/kayashov/bar/bot/annotation/CommandData.java create mode 100644 src/main/java/ru/kayashov/bar/bot/annotation/FilterTitle.java create mode 100644 src/main/java/ru/kayashov/bar/bot/config/TelegramBotConfig.java create mode 100644 src/main/java/ru/kayashov/bar/bot/config/TelegramBotMapper.java create mode 100644 src/main/java/ru/kayashov/bar/bot/config/TelegramBotMapperImpl.java create mode 100644 src/main/java/ru/kayashov/bar/bot/config/TelegramBotProperty.java create mode 100644 src/main/java/ru/kayashov/bar/bot/config/TelegramExecutorBot.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/Bot.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/command/CommandContainer.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/command/api/Command.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/command/impl/HideCommand.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/command/impl/LoginCommand.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/command/impl/StartCommand.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/command/impl/UnknownCommand.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/keyboards/inline/InlineKeyboardMarker.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/keyboards/reply/ReplyKeyboardMarker.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractDeleteMessage.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractInlineKeyboard.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractMethod.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractSendKeyboardMessage.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractSendMessage.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/AbstractCallbackQuery.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/AbstractChat.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/AbstractKeyboard.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/AbstractKeyboardButton.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/AbstractMessage.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/AbstractUpdate.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarGenerationDto.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarMarkDto.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarModelDto.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/pojo/FindPageableDto.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/pojo/FindServiceDto.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/pojo/LocationDto.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/model/pojo/PageableDto.java create mode 100644 src/main/java/ru/kayashov/bar/bot/domain/utils/MethodUtils.java create mode 100644 src/main/java/ru/kayashov/bar/config/ExecutorConfig.java create mode 100644 src/main/java/ru/kayashov/bar/controller/AuthController.java create mode 100644 src/main/java/ru/kayashov/bar/controller/BarController.java create mode 100644 src/main/java/ru/kayashov/bar/controller/CocktailController.java create mode 100644 src/main/java/ru/kayashov/bar/controller/IngredientController.java create mode 100644 src/main/java/ru/kayashov/bar/controller/OrderController.java create mode 100644 src/main/java/ru/kayashov/bar/controller/VisitorController.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/AuthRequestDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/AuthResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/ErrorDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/OrderResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/SessionResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/VisitorResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/bar/BarResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/bar/CategoryResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/bar/GlassResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/bar/TagResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailFilterRequestDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailForListResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailModalDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailSimpleResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/cocktail/RatingResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/cocktail/ReceiptResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/cocktail/SortingEnum.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/ingredient/IngredientResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/ingredient/IngredientSimpleResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/controller/dto/ingredient/TypeResponseDto.java create mode 100644 src/main/java/ru/kayashov/bar/mapper/CocktailMapper.java create mode 100644 src/main/java/ru/kayashov/bar/mapper/IngredientMapper.java create mode 100644 src/main/java/ru/kayashov/bar/model/Cocktail.java create mode 100644 src/main/java/ru/kayashov/bar/model/Ingredient.java create mode 100644 src/main/java/ru/kayashov/bar/model/api/cocktail/Cocktails.java create mode 100644 src/main/java/ru/kayashov/bar/model/api/cocktail/Ingredients.java create mode 100644 src/main/java/ru/kayashov/bar/model/api/translate/Request.java create mode 100644 src/main/java/ru/kayashov/bar/model/api/translate/Response.java create mode 100644 src/main/java/ru/kayashov/bar/model/api/translate/Translate.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/AlcoholicEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/BarEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/BarIngredientStorage.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/BarResident.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/CategoryEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/CocktailEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/GlassEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/IngredientEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/OrderStatus.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/ParserEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/Pay.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/Rating.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/ReceiptEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/SessionEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/StopList.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/TagEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/TypeEntity.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/Unit.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/UnitRepository.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/UserRole.java create mode 100644 src/main/java/ru/kayashov/bar/model/entity/Visitor.java create mode 100644 src/main/java/ru/kayashov/bar/repository/AlcoholicRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/BarEntityRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/BarIngredientStorageRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/BarResidentRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/CategoryRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/CocktailRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/GlassRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/IngredientRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/OrdersRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/ParserEntityRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/RatingRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/ReceiptRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/SessionRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/StopListRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/TagRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/TypeRepository.java create mode 100644 src/main/java/ru/kayashov/bar/repository/VisitorsRepository.java create mode 100644 src/main/java/ru/kayashov/bar/schedule/Repairer.java create mode 100644 src/main/java/ru/kayashov/bar/security/CustomUserDetailService.java create mode 100644 src/main/java/ru/kayashov/bar/security/JwtTokenFilter.java create mode 100644 src/main/java/ru/kayashov/bar/security/JwtTokenProvider.java create mode 100644 src/main/java/ru/kayashov/bar/security/SecurityConfig.java create mode 100644 src/main/java/ru/kayashov/bar/service/CocktailService.java create mode 100644 src/main/java/ru/kayashov/bar/service/IngredientService.java create mode 100644 src/main/java/ru/kayashov/bar/service/OrderService.java create mode 100644 src/main/java/ru/kayashov/bar/service/ParserQueueService.java create mode 100644 src/main/java/ru/kayashov/bar/service/RestUtil.java create mode 100644 src/main/java/ru/kayashov/bar/service/SessionService.java create mode 100644 src/main/java/ru/kayashov/bar/service/VisitorService.java create mode 100644 src/main/java/ru/kayashov/bar/service/integration/cocktail/CocktailApiService.java create mode 100644 src/main/java/ru/kayashov/bar/service/integration/translate/TranslateService.java create mode 100644 src/main/resources/META-INF/MANIFEST.MF create mode 100644 src/main/resources/application.properties create mode 100644 src/test/java/ru/kayashov/bar/MyBarApplicationTests.java diff --git a/front/Dockerfile b/front/Dockerfile new file mode 100644 index 0000000..d9052db --- /dev/null +++ b/front/Dockerfile @@ -0,0 +1,5 @@ +FROM nginx:1.16.0-alpine +COPY default.conf /etc/nginx/conf.d +COPY build /usr/share/nginx/html +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/front/README.md b/front/README.md new file mode 100644 index 0000000..58beeac --- /dev/null +++ b/front/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can't go back!** + +If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. + +You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `npm run build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/front/default.conf b/front/default.conf new file mode 100644 index 0000000..c673aea --- /dev/null +++ b/front/default.conf @@ -0,0 +1,26 @@ +server { + listen 80; + server_name localhost; + + root /usr/share/nginx/html; + + index index.html; + location / { + try_files $uri /index.html; + + } + + location /api { + proxy_pass http://192.168.1.101:8080; + } + + # Настройка кэширования статических ресурсов + location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { + expires 30d; + add_header Cache-Control "public, no-transform"; + } + + # Включение сжатия Gzip + gzip on; + gzip_types text/plain application/javascript application/json application/xml; +} \ No newline at end of file diff --git a/front/package-lock.json b/front/package-lock.json new file mode 100644 index 0000000..f4ec148 --- /dev/null +++ b/front/package-lock.json @@ -0,0 +1,19344 @@ +{ + "name": "front", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "front", + "version": "0.1.0", + "dependencies": { + "@emotion/react": "^11.13.0", + "@emotion/styled": "^11.13.0", + "@fontsource/inter": "5.0.18", + "@fontsource/plus-jakarta-sans": "5.0.20", + "@fontsource/roboto": "^5.0.14", + "@fontsource/roboto-mono": "5.0.18", + "@hookform/resolvers": "3.6.0", + "@mui/icons-material": "^5.16.6", + "@mui/material": "^5.16.6", + "@mui/utils": "^5.16.6", + "@mui/x-date-pickers": "7.7.1", + "@phosphor-icons/react": "2.1.6", + "@reduxjs/toolkit": "^2.5.0", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/react": "^18.3.3", + "apexcharts": "3.49.2", + "axios": "^1.7.3", + "cors": "^2.8.5", + "dayjs": "1.11.11", + "moment": "^2.30.1", + "notistack": "^3.0.1", + "prop-types": "^15.8.1", + "react": "^18.3.1", + "react-apexcharts": "1.4.1", + "react-dom": "^18.3.1", + "react-hook-form": "7.52.0", + "react-jwt": "^1.2.2", + "react-redux": "^9.2.0", + "react-router": "^7.1.1", + "react-router-dom": "^6.25.1", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4", + "zod": "3.23.8" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz", + "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.24.8.tgz", + "integrity": "sha512-nYAikI4XTGokU2QX7Jx+v4rxZKhKivaQaREZjuW3mrJrbdWJ5yUfohnoUULge+zEEaKjPYNxhoRgUKktjXtbwA==", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0 || ^9.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", + "dependencies": { + "@babel/types": "^7.24.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", + "dependencies": { + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.8.tgz", + "integrity": "sha512-4f6Oqnmyp2PP3olgUMmOwC3akxSm5aBYraQ6YDdKy7NcAMkDECHWG0DEnV6M2UAkERgIBhYt8S27rURPg7SxWA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.8", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", + "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "dependencies": { + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", + "dependencies": { + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", + "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", + "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz", + "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-decorators": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz", + "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz", + "integrity": "sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.8.tgz", + "integrity": "sha512-VXy91c47uujj758ud9wx+OMgheXm4qJfyhj1P18YvlrQkNOSrwsteHk+EFS3OMGfhMhpZa0A+81eE7G4QC+3CA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", + "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.24.7.tgz", + "integrity": "sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-flow": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", + "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", + "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.7.tgz", + "integrity": "sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", + "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", + "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", + "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", + "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.24.7.tgz", + "integrity": "sha512-YqXjrk4C+a1kZjewqt+Mmu2UuV1s07y8kqcUf4qYLnoqemhR4gRQikhdAhSVJioMjVTu6Mo6pAbaypEA3jY6fw==", + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.1", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", + "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.8.tgz", + "integrity": "sha512-CgFgtN61BbdOGCP4fLaAMOPkzWUh6yQZNMr5YSt8uz2cZSSiQONCQFWqsE4NeVfOIhqDOlS9CR3WD91FzMeB2Q==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.8.tgz", + "integrity": "sha512-vObvMZB6hNWuDxhSaEPTKCwcqkAIuDtE+bQGn4XMXne1DSLzFVY8Vmj1bm+mUQXYNN8NmaQEO+r8MMbzPr1jBQ==", + "dependencies": { + "@babel/compat-data": "^7.24.8", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-plugin-utils": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@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/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.8", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.8", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.8", + "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.8", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.8", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.37.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", + "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.24.7", + "@babel/plugin-transform-react-jsx-development": "^7.24.7", + "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.8.tgz", + "integrity": "sha512-5F7SDGs1T72ZczbRwbGO9lQi0NLjQxzl6i4lJxLxfW9U5UluCSyEJeniWvnhl3/euNiqQVbo8zruhsDfid0esA==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz", + "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/serialize": "^1.2.0", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.13.1", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.1.tgz", + "integrity": "sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==", + "dependencies": { + "@emotion/memoize": "^0.9.0", + "@emotion/sheet": "^1.4.0", + "@emotion/utils": "^1.4.0", + "@emotion/weak-memoize": "^0.4.0", + "stylis": "4.2.0" + } + }, + "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==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.0.tgz", + "integrity": "sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==", + "dependencies": { + "@emotion/memoize": "^0.9.0" + } + }, + "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==" + }, + "node_modules/@emotion/react": { + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.0.tgz", + "integrity": "sha512-WkL+bw1REC2VNV1goQyfxjx1GYJkcc23CRQkXX+vZNLINyfI7o+uUn/rTGPt/xJ3bJHd5GcljgnxHf4wRw5VWQ==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.12.0", + "@emotion/cache": "^11.13.0", + "@emotion/serialize": "^1.3.0", + "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/utils": "^1.4.0", + "@emotion/weak-memoize": "^0.4.0", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.0.tgz", + "integrity": "sha512-jACuBa9SlYajnpIVXB+XOXnfJHyckDfe6fOpORIM6yhBDlqGuExvDdZYHDQGoDf3bZXGv7tNr+LpLjJqiEQ6EA==", + "dependencies": { + "@emotion/hash": "^0.9.2", + "@emotion/memoize": "^0.9.0", + "@emotion/unitless": "^0.9.0", + "@emotion/utils": "^1.4.0", + "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==" + }, + "node_modules/@emotion/styled": { + "version": "11.13.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.0.tgz", + "integrity": "sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.12.0", + "@emotion/is-prop-valid": "^1.3.0", + "@emotion/serialize": "^1.3.0", + "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/utils": "^1.4.0" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.9.0.tgz", + "integrity": "sha512-TP6GgNZtmtFaFcsOgExdnfxLLpRDla4Q66tnenA9CktvVSdNKDvMVuUah4QvWPIpNjrWsGg3qeGo9a43QooGZQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", + "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.0.tgz", + "integrity": "sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==" + }, + "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==" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.7.tgz", + "integrity": "sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==", + "dependencies": { + "@floating-ui/utils": "^0.2.7" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.10", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.10.tgz", + "integrity": "sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.7" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz", + "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==", + "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.7", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.7.tgz", + "integrity": "sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==" + }, + "node_modules/@fontsource/inter": { + "version": "5.0.18", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-5.0.18.tgz", + "integrity": "sha512-YCsoYPTcs713sI7tLtxaPrIhXAXvEetGg5Ry02ivA8qUOb3fQHojbK/X9HLD5OOKvFUNR2Ynkwb1kR1hVKQHpw==" + }, + "node_modules/@fontsource/plus-jakarta-sans": { + "version": "5.0.20", + "resolved": "https://registry.npmjs.org/@fontsource/plus-jakarta-sans/-/plus-jakarta-sans-5.0.20.tgz", + "integrity": "sha512-a887FrG31RWqliRg1jXZM8tjzqee2NlO3Vuc5uGdws2EFvOg46P9VMaeS5eM3jihFq8Kj0zUQD0GYQqcxdkfCA==" + }, + "node_modules/@fontsource/roboto": { + "version": "5.0.14", + "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-5.0.14.tgz", + "integrity": "sha512-zHAxlTTm9RuRn9/StwclFJChf3z9+fBrOxC3fw71htjHP1BgXNISwRjdJtAKAmMe5S2BzgpnjkQR93P9EZYI/Q==" + }, + "node_modules/@fontsource/roboto-mono": { + "version": "5.0.18", + "resolved": "https://registry.npmjs.org/@fontsource/roboto-mono/-/roboto-mono-5.0.18.tgz", + "integrity": "sha512-hKuwk/cy3i6fWPzazT5xjgWq4YNqZWDHVbJh2Wwj3KYvWGi2v3ToBw/4LKQ+ggEkPLcIG6VU8GpCT3Xtf+mbbA==" + }, + "node_modules/@hookform/resolvers": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-3.6.0.tgz", + "integrity": "sha512-UBcpyOX3+RR+dNnqBd0lchXpoL8p4xC21XP8H6Meb8uve5Br1GCnmg0PcBoKKqPKgGu9GHQ/oygcmPrQhetwqw==", + "peerDependencies": { + "react-hook-form": "^7.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", + "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==" + }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", + "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.6.tgz", + "integrity": "sha512-kytg6LheUG42V8H/o/Ptz3olSO5kUXW9zF0ox18VnblX6bO2yif1FPItgc3ey1t5ansb1+gbe7SatntqusQupg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/icons-material": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.16.6.tgz", + "integrity": "sha512-ceNGjoXheH9wbIFa1JHmSc9QVjJUvh18KvHrR4/FkJCSi9HXJ+9ee1kUhCOEFfuxNF8UB6WWVrIUOUgRd70t0A==", + "dependencies": { + "@babel/runtime": "^7.23.9" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@mui/material": "^5.0.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.6.tgz", + "integrity": "sha512-0LUIKBOIjiFfzzFNxXZBRAyr9UQfmTAFzbt6ziOU2FDXhorNN2o3N9/32mNJbCA8zJo2FqFU6d3dtoqUDyIEfA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/core-downloads-tracker": "^5.16.6", + "@mui/system": "^5.16.6", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.6", + "@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": "^18.3.1", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/@mui/private-theming": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.6.tgz", + "integrity": "sha512-rAk+Rh8Clg7Cd7shZhyt2HGTTE5wYKNSJ5sspf28Fqm/PZ69Er9o6KX25g03/FG2dfpg5GCwZh/xOojiTfm3hw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.16.6", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.6.tgz", + "integrity": "sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.6.tgz", + "integrity": "sha512-5xgyJjBIMPw8HIaZpfbGAaFYPwImQn7Nyh+wwKWhvkoIeDosQ1ZMVrbTclefi7G8hNmqhip04duYwYpbBFnBgw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.16.6", + "@mui/styled-engine": "^5.16.6", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.6", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.15", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.15.tgz", + "integrity": "sha512-nbo7yPhtKJkdf9kcVOF8JZHPZTmqXjJ/tI0bdWgHg5tp9AnIN4Y7f7wm9T+0SyGYJk76+GYZ8Q5XaTYAsUHN0Q==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.16.6", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.6.tgz", + "integrity": "sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==", + "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": "^18.3.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/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==" + }, + "node_modules/@mui/x-date-pickers": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-7.7.1.tgz", + "integrity": "sha512-p7/TY8QcdQd6RelNqzW5q89GeUFctvZnDHTfQVEC0l0nAy7ArE6u21uNF8QWGrijZoJXCM+OlIRzlZADaUPpWA==", + "dependencies": { + "@babel/runtime": "^7.24.7", + "@mui/base": "^5.0.0-beta.40", + "@mui/system": "^5.15.20", + "@mui/utils": "^5.15.20", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.1", + "prop-types": "^15.8.1", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.9.0", + "@emotion/styled": "^11.8.1", + "@mui/material": "^5.15.14", + "date-fns": "^2.25.0 || ^3.2.0", + "date-fns-jalali": "^2.13.0-0 || ^3.2.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/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@phosphor-icons/react": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@phosphor-icons/react/-/react-2.1.6.tgz", + "integrity": "sha512-F963SJvCTk0Qm5SRTSHXP8bCIYgMAbSVZ73f5DoxjP2iG/yAzRdySzbs9kVPETYxvr0zwTY4DUTqUjB3vr8sVw==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": ">= 16.8", + "react-dom": ">= 16.8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz", + "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==", + "dependencies": { + "ansi-html": "^0.0.9", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^4.2.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x || 5.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.5.0.tgz", + "integrity": "sha512-awNe2oTodsZ6LmRqmkFhtb/KH03hUhxOamEQy411m3Njj3BbFvoBovxo4Q1cBWnV1ErprVj9MlF0UPXkng0eyg==", + "license": "MIT", + "dependencies": { + "immer": "^10.0.3", + "redux": "^5.0.1", + "redux-thunk": "^3.1.0", + "reselect": "^5.1.0" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", + "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@reduxjs/toolkit/node_modules/immer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/immer/-/immer-10.1.1.tgz", + "integrity": "sha512-s2MPrmjovJcoMaHtx6K11Ra7oD05NT97w1IC5zpMkT6Atjr7H8LjaDd81iIxUYpMKSRRNMJE703M1Fhr/TctHw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/@remix-run/router": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.18.0.tgz", + "integrity": "sha512-L3jkqmqoSVBVKHfpGZmLrex0lxR5SucGA0sUfFzGctehw+S/ggL9L/0NnC5mw6P8HUWpFZ3nQw3cRApjjWx9Sw==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz", + "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/react/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@testing-library/react/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "license": "MIT" + }, + "node_modules/@types/eslint": { + "version": "8.56.11", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.11.tgz", + "integrity": "sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.5", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz", + "integrity": "sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" + }, + "node_modules/@types/jest/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@types/jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@types/jest/node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/jest/node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/@types/jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "20.14.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.12.tgz", + "integrity": "sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.11", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.11.tgz", + "integrity": "sha512-4+q7P5h3SpJxaBft0Dzpbr6lmMaqh0Jr2tbhJZ/luAwvD7ohSCniYkwz/pLxuT2h0EOa6QADgJj1Ko+TzRfZ+w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.9.tgz", + "integrity": "sha512-ozbS3LuenHVxNRh/wdnN16QapUHzauqSomAl1jwwJRRsGwFwtj644lIhxfWu0Fy0acCij2+AEgHvjscq3dlVXg==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apexcharts": { + "version": "3.49.2", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.49.2.tgz", + "integrity": "sha512-vBB8KgwfD9rSObA7s4kY2rU6DeaN67gTR3JN7r32ztgKVf8lKkdFQ6iUhk6oIHrV7W8PoHhr5EwKymn0z5Fz6A==", + "dependencies": { + "@yr/monotone-cubic-spline": "^1.0.3", + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.7.tgz", + "integrity": "sha512-mzmiUCVwtiD4lgxYP8g7IYy8El8p2CSMePvIbTS7gchKir/L1fgJrk0yDKmAX6mnRQFKNADYIk8nNlTris5H1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-array-method-boxes-properly": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.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==", + "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.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", + "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.3.tgz", + "integrity": "sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.1.1.tgz", + "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz", + "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserslist": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001692", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", + "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", + "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==", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.37.1.tgz", + "integrity": "sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.11.0.tgz", + "integrity": "sha512-CTJ+AEQJjq5NzLga5pE39qdiSV56F8ywCIsqNIRF0r7BDgWsN25aazToqAFg7ZrtA/U016xudB3ffgweORxX7g==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.33", + "postcss-modules-extract-imports": "^3.1.0", + "postcss-modules-local-by-default": "^4.0.5", + "postcss-modules-scope": "^3.2.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "node_modules/cssdb": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz", + "integrity": "sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dayjs": { + "version": "1.11.11", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz", + "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==" + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.0.tgz", + "integrity": "sha512-Vb3xHHYnLseK8vlMJQKJYXJ++t4u1/qJ3vykuVrVjvdiOEhYyT1AuP4x03G8EnPmYvYOhe9T+dADTmthjRQMkA==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==" + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz", + "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==", + "dependencies": { + "aria-query": "~5.1.3", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.9.1", + "axobject-query": "~3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.19", + "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.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "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.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "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==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.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" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", + "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.6.tgz", + "integrity": "sha512-b1FMfwetIKymC0eioW7mTywihSQE4oLzQn1dB6rZB5fx/3NpNEdAWeCSMB+60/AeT0TCXsxzAlcYVEFCTAksWg==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.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" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/goober": { + "version": "2.1.14", + "resolved": "https://registry.npmjs.org/goober/-/goober-2.1.14.tgz", + "integrity": "sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg==", + "peerDependencies": { + "csstype": "^3.0.10" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.5.2.tgz", + "integrity": "sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", + "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.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" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "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.", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", + "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "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" + }, + "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==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.8.0.tgz", + "integrity": "sha512-vJranOAJrI/llyWGRQqiDM+adrw+k83fvmmx3+nV47g3+36xM15jE+zyZ6Ffel02+xSvuM0b2GDRosXZkbb6wA==", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", + "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/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/notistack": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/notistack/-/notistack-3.0.1.tgz", + "integrity": "sha512-ntVZXXgSQH5WYfyU+3HfcXuKaapzAJ8fBLQ/G618rn3yvSzEbnOB8ZSOwhX+dAORy/lw+GC2N061JA0+gYWTVA==", + "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": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.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==", + "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==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.12", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz", + "integrity": "sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", + "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.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" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.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" + }, + "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==" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz", + "integrity": "sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz", + "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz", + "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz", + "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.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" + } + ], + "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==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", + "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "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)", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-apexcharts": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.4.1.tgz", + "integrity": "sha512-G14nVaD64Bnbgy8tYxkjuXEUp/7h30Q0U33xc3AwtGFijJB9nHqOt1a6eG0WBn055RgRg+NwqbKGtqPxy15d0Q==", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "apexcharts": "^3.41.0", + "react": ">=0.13" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/react-dev-utils/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz", + "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dom": { + "version": "18.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" + }, + "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==" + }, + "node_modules/react-hook-form": { + "version": "7.52.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.52.0.tgz", + "integrity": "sha512-mJX506Xc6mirzLsmXUJyqlAI3Kj9Ph2RhplYhUVffeOQSnubK2uVqBFOBJmvKikvbFV91pxVXmDiR+QMF19x6A==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-jwt": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/react-jwt/-/react-jwt-1.2.2.tgz", + "integrity": "sha512-1I0Ei1F9m7Nzo1jaeeZk7dpUC4srIVC3bUxDqgD9mFltoTyytp5TFPkK3XMWfLE5iYUsQ+C7tNYbf/gd61D4Sw==", + "engines": { + "node": ">=10" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": "^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/react-redux": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", + "redux": "^5.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.1.1.tgz", + "integrity": "sha512-39sXJkftkKWRZ2oJtHhCxmoCrBCULr/HAH4IT5DHlgu/Q0FCPV0S4Lx+abjDTx/74xoZzNYDYbOZWlJjruyuDQ==", + "license": "MIT", + "dependencies": { + "@types/cookie": "^0.6.0", + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0", + "turbo-stream": "2.4.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.25.1.tgz", + "integrity": "sha512-0tUDpbFvk35iv+N89dWNrJp+afLgd+y4VtorJZuOCXK0kkCWjEvb3vTJM++SYvMEpbVwXKf3FjeVveVEb6JpDQ==", + "dependencies": { + "@remix-run/router": "1.18.0", + "react-router": "6.25.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-router-dom/node_modules/react-router": { + "version": "6.25.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.25.1.tgz", + "integrity": "sha512-u8ELFr5Z6g02nUtpPAggP73Jigj1mRePSwhS/2nkTrlPU5yEkH1vYzWNyvSnSzeeE2DNqWdH+P8OhIh9wuXhTw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.18.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router/node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/redux": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-5.0.1.tgz", + "integrity": "sha512-M9/ELqF6fy8FwmkpnF0S3YKOqMyoWJ4+CS5Efg2ct3oY9daQvd/Pc71FpGZsVsbl3Cpb+IIcjBDUnnyBdQbq4w==", + "license": "MIT" + }, + "node_modules/redux-thunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-3.1.0.tgz", + "integrity": "sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw==", + "license": "MIT", + "peerDependencies": { + "redux": "^5.0.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/reselect": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/schema-utils/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==", + "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/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz", + "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.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==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.4.tgz", + "integrity": "sha512-0WqXzrsMTyb8yjZJHDqwmnwRJvhALK9LfRtRc6B4UTWe8AijYLZYZ9thuJTZc2VfQWINADW/j+LiJnfy2RoC1w==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.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" + }, + "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==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", + "dependencies": { + "svg.js": "^2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==", + "dependencies": { + "svg.js": ">=2.3.x" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "node_modules/svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", + "dependencies": { + "svg.js": "^2.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", + "dependencies": { + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.resize.js/node_modules/svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "dependencies": { + "svg.js": "^2.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", + "dependencies": { + "svg.js": "^2.6.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwindcss": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.6.tgz", + "integrity": "sha512-1uRHzPB+Vzu57ocybfZ4jh5Q3SdlH7XW23J5sQoM9LhE9eIOlzxer/3XPSsycvih3rboRsvt0QCmzSrqyOYUIA==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.31.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.3.tgz", + "integrity": "sha512-pAfYn3NIZLyZpa83ZKigvj6Rn9c/vd5KfYGX7cN1mnzqgDcxWvrU5ZtAfIKhEXz9nRecw4z3LXkjaq96/qZqAA==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "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" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/turbo-stream": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/turbo-stream/-/turbo-stream-2.4.0.tgz", + "integrity": "sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==", + "license": "ISC" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.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==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/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-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.93.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", + "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", + "acorn": "^8.7.1", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.17.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.11", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", + "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.2.tgz", + "integrity": "sha512-0XavAZbNJ5sDrCbkpWL8mia0o5WPOd2YGtxrEiZkBK9FjLppIUK2TgxK6qGD2P3hUXTJNNPVibrerKcx5WkR1g==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.4", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "deprecated": "It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/front/package.json b/front/package.json new file mode 100644 index 0000000..1034a42 --- /dev/null +++ b/front/package.json @@ -0,0 +1,66 @@ +{ + "name": "front", + "version": "0.1.0", + "private": true, + "dependencies": { + "@emotion/react": "^11.13.0", + "@emotion/styled": "^11.13.0", + "@fontsource/inter": "5.0.18", + "@fontsource/plus-jakarta-sans": "5.0.20", + "@fontsource/roboto": "^5.0.14", + "@fontsource/roboto-mono": "5.0.18", + "@hookform/resolvers": "3.6.0", + "@mui/icons-material": "^5.16.6", + "@mui/material": "^5.16.6", + "@mui/utils": "^5.16.6", + "@mui/x-date-pickers": "7.7.1", + "@phosphor-icons/react": "2.1.6", + "@reduxjs/toolkit": "^2.5.0", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/react": "^18.3.3", + "apexcharts": "3.49.2", + "axios": "^1.7.3", + "cors": "^2.8.5", + "dayjs": "1.11.11", + "moment": "^2.30.1", + "notistack": "^3.0.1", + "prop-types": "^15.8.1", + "react": "^18.3.1", + "react-apexcharts": "1.4.1", + "react-dom": "^18.3.1", + "react-hook-form": "7.52.0", + "react-jwt": "^1.2.2", + "react-redux": "^9.2.0", + "react-router": "^7.1.1", + "react-router-dom": "^6.25.1", + "react-scripts": "5.0.1", + "web-vitals": "^2.1.4", + "zod": "3.23.8" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/front/public/assets/avatar.png b/front/public/assets/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..2baa6c874f4ed221fe7cfdfcfefc33deca1f6a7a GIT binary patch literal 32500 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 Y_CK-CoA6v9sUGxMT2ZQ6!tne52NrHSQUCw| literal 0 HcmV?d00001 diff --git a/front/public/assets/cocktails/herosim.jpg b/front/public/assets/cocktails/herosim.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65a09e7af923d0f33f8be4fba3ac59e2282e178b GIT binary patch literal 49754 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⪻v5l=P_cw`h*n-(= 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 literal 0 HcmV?d00001 diff --git a/front/public/assets/error-404.png b/front/public/assets/error-404.png new file mode 100644 index 0000000000000000000000000000000000000000..301010c9357051a91a707eab3fd2aa732b6470e3 GIT binary patch literal 169567 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 literal 0 HcmV?d00001 diff --git a/front/public/assets/ingredients/Aperol.png b/front/public/assets/ingredients/Aperol.png new file mode 100644 index 0000000000000000000000000000000000000000..e456296ba8af7c6d55ff8b2c295a54679306ff46 GIT binary patch literal 170143 zcmeFY_OA0qUG*I%8VMQ<3=F1%yv%zT7`RsG2L%cGPqV!=@^>RR~U*IAa+G<|R`> zMpDzu`1lF6(c(ahJp9!4W3=#|h^D30XpUk6Qt)RMTAcbwNemJUp1!-LsLYlFq?VJj zPy6E%>8Jkwz>L+WKZ{XMygYn-NDY`C=182H3UEAHwhUTDn&wv8W2v6){0<||Yx+Jf z0pDC5E%E6R5)(g}zndEj7w8EX)7!I{`HByyVBNxg*NN+dKnDANzW&b^{GTZJ|4Sk` z*dbK2;Hp0VPv(0`_rxSq@MTY>Ph{%72*n`Uu#4@-^g{HAor ztRP`pW08&u_PJxbj+w^Ju; zpu1c>UvZw~Tk^n(pcwGvP}V%Wl1lFM2{=MgpG~1dxcewOq08Hcsh*yy8*a-0udr3| zb5(Idi577z)i1RgjUL}fexjin<>>`S?Zh@8D{7?aL+1C4$vsChinJZH0}Joc@)biR zKPwd1l)fLFDoR}&>CQ;>YgoIuYV%yZPIqj+Ofq@CarE7|!VG}@149nQa4&cqr|w6j zz|$5tXxJcuGN1Fr?OWZRuQCNcJshtKyllB*vu6lt9aXT>2m8MZeQGampo>)_0wfw@ zg~Ef*w7=LiEcaZ*&Dd!j)P`AA z_Pd+{cp`eB2zp&{oM2X0H?zHqA$u>i+;#V1G&G^ILNb8L5(fbO2;Rd>Fc(v#nkFkT zRL#>blJ_g7wl&wsT5<7p+Vk^#nj>#m|E=@9@<<_e+n06Z;|@imjXqhbHfQY7n32CZ z0SJQ`Jgrd+_}y>p^=De#XS1f`7BjeJd}eyqRe{T<#~M8dJum5V^3riuOoy##pk0JF zccp6OA_ir0ik$R*9qkVu(!iM{u2>D0{IA2nuv&g6X^|f;!|o-#h0S@2m13qWk({4r zVZYX3ts@arOup%I?iR6W5yC>{MCGESU9ChwXWEdM%I0a{x4c}5*ohbyd14*5R(nY_ z3AkBYs*@gl2T4}gccz|H8=pNr4d02QLte=p4UVq(<4F4axadm{>7MG?H6K6tbM9*y za51AXLlIe!Otgd>^&!)u%0bRgADWseA6dV*v1@l!DgMNoyzCVR8xyn|= z_8L+D;bTC0?GLzb*(2n4xK8i-$9hbK;Z(hzqM>l}MPg$lm2kbzYv&?PNl9tS4ye$u z3L*y;U{x!6pyMgPeLY5K)j=hk1KCk^)As6Of1b5@i^4w0QBQ7XmWrRUDB|#ya|oYq z1a%Man*A6>(eQq5H=Zos^oWwn9LMg1J5X?t72n7qv#{H~R|nrp%U6Yb*BRqM-Ph+k zjX_&f&nsuiC)&Rue8&V0VXeTO5+S(g&e4d@i^O3^gErr$rDZ!1*^QZ2pg3VtAhm7< zSQ)HRSSF{!%Od$@|4#C~a`hnb`H5XN$=Y;#mUpT1_IY3(>`+Ntzjw2WCO~k0=A%}O zyEL9HO=DM678#iarkq=o;2_)aYqEFvHb#?u%6evDwF)CB5Gd#mfI z@+x>N3|V@9z7P1VqK5>Qt&6M6QZ)8XyTm7$`Yh}h1Ye^&Nn;>z%l}MrhYP(rihZEg%=zg4=6y_tTRyvp4~L#y8N zNXr_nJ1wpHsuoz7zMjv6g>725raRbUwaPRSNW|agu63qWQI6|;d9vi|7iqGg%USrz zD|H!AWl4-h<+AP{5c}gi8tE6gPrwuGjp#oBrJ>pQd@I*3^pA~xS{42X_yKVdDH6*bp*%^_^0rKIYMVJIPH$NN|H~i{WVK_B=(ZswNd1o9J`U#LQ2>j`(hYCpR~G56w2~? zRwIjQuu9PPg{wxl6)N&yiS%6Osr{s-gd<3EPc>7cD@5K7ZN?4XFu_fkcV9A{LOkD` z+KDSbak>n$EWa}OdvEAQeV~EaaZivKjPlo=^-g5e-(|yugU6H^*jUF0ayY}v+IKu4 zj}P}#1Za$vUGKayF$Tx@U)4-4EnqzBTjqkANd|cl`N75?9Gd2{iCvmNc=~kJ8bh

)CK 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�t4AVtAa7N+$cr3Yd>GSbeIQz7Q7w*tg@XK$dz%6 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 literal 0 HcmV?d00001 diff --git a/front/public/assets/logo--dark.svg b/front/public/assets/logo--dark.svg new file mode 100644 index 0000000..19b8f7b --- /dev/null +++ b/front/public/assets/logo--dark.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/logo-emblem--dark.svg b/front/public/assets/logo-emblem--dark.svg new file mode 100644 index 0000000..19b8f7b --- /dev/null +++ b/front/public/assets/logo-emblem--dark.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/logo-emblem.svg b/front/public/assets/logo-emblem.svg new file mode 100644 index 0000000..1cf3608 --- /dev/null +++ b/front/public/assets/logo-emblem.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/logo.svg b/front/public/assets/logo.svg new file mode 100644 index 0000000..1cf3608 --- /dev/null +++ b/front/public/assets/logo.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/public/assets/qr.png b/front/public/assets/qr.png new file mode 100644 index 0000000000000000000000000000000000000000..be5287ae4100dbb9ad450f126c0bfb49821434e0 GIT binary patch literal 159199 zcmeFYXIzuZw?7(1#m?R~6a?(3AShKN5Vj4KrqZMZl@d@ONJ~PuZ>5WrP=bhn)X)q9 zp(qkcfCxwp1TYY!lZ0OHJP`LjzjMy#|GzKqi_4oNGtV=#X07k4vv_q=TYbk?p{+0& zY{&I$mv6&h8{%QGjlG-KgOR$|q90)}U)c4_f9YY7BV8{&Oy;}>7M7Y6UNOfGXf^05 zKSYUiYsEwtVM05-9Nfk&JmAwdQF2GMbQ4d$dVl%#g9L`~m0L$nO=~|XR)pEX=u07! z*M7|SiPaze+iB;7w@RFNknA}DwVv-^=r${Zh;?Ao|NMjJ=5W&9hhge3`#ie9;mS6| z#hJ~{4gM-(na3C{n73lwd!<)?j$l^$+Doz1KE?|n&0_Fkx8P5FQRPujqy2&fp`*dt zQp3W`_hpbhta}BApSvk=#s*Qi@Qw`R_x5HRIYIl(GU+Xd)d$l@uSh(krC#xge@{JX zQhXm}7&k9#sE_o3X3M(cOy-Jmox6)0Wqzh*An!T%*AWl-NI-K{B6L3k#wolJN3;&w8lT=hPh8|W zb2(9r{pK@kzlc??(jGG_=ud-4Mzm{Brl1kl1nq!<=~;ZALCX z7%$@*7aw=L@v4p&O-b3f;eo5V` zD*5}ck`}U<#|20GydeI-#+GEz{iC|Mg^G75Ztm0S5wqbNq4DTXIUH^Fh;lM3l7Ggb zTCzK4Cm1cu!1x_0l!$DdK4G2>J$9%>%*@!x>#uh;TUd3)UJo2R{?z#eQTKQM=n-Vh zAQi8y&4_@WbZQ4O#9^koFttQkOkBb4{v`+@hxjv8yef0QS zk|xsz)&2!0{VEU>4h=7nZI(xW8ij|+Vlv64&>of%W;xrjfJDYV=&)zwsv)=aZmQasDh?`95i%j8`(@QgU`4BD?>^C3~duMrb^1W z*wa7%Itk|?3VsIfAPHuqdpk#Yf2TR2S(d>A5QQ+Yxqf_gzTal}v|TRiZ7^yJG-!@Z za~vCee}M9BcF#WWyUd4iL7r>SAZKxIM!UfuZUH@nZJ}Sex0FT54v-ap1xK$AeUGky zKdm$kL~)^?Xph`T)I{3}Ywi8GozMvUY^Ye^|!})HbV2kkI;KJ_8)bn>_XnUNw^0_V2!NN_Y=|L z2Q*l-3^@3GNS1Lr2FLBo^Y*WAYf&hU9j}9s(Kr(OMrrDMO!kMmn7f>qRb@Ituh$&n z@Ap5BVabJ}ASU^Kpd<4*tXF?nq%efVFR?5`2gIOZOXI^6cZ^ZmO1NE+LA$nZ>5rIf zJsrYx@B{Yd=O|Nmo~^k0PI7<2W-xZwk8vu}Gwr78thMA0S#g5WQr`iHwTJGN)|%i# z%PbC<-m8jv#vyM2gTa4?g(+@LW}N@iQu3(>_uE^zEX1v2J$1VeFZo7iPog~z$CW}G z+tp3K?-73PkF$bDLkv7Nrs!cvO5<<$w{m1XlS@v7>q2jSju*Qp8_q7q!B5ikz;9R} zNlakyWvf5#zBtYTI%w7b=~!VeT|}03t*mVFNBBeNwKnpj`%Y5}yY_R(W({1xKw0c3 zL))R3Km2hI(S)7=2x`8ez_6hY#(6Sl_gIK_Pc#2=F07H=4?TP}EhyShOhuOUwD?w; z?&`x`(-!xZ&PJV+9w0Bo!&9$!~$t;5I3Hg zvo_Z9S!aezDX`f48@ zQmekC)}XYPRR1|gPA#MaPTwC^R!&-2Q9KJ04&%I`w+dJRPhO4sTU8(t3WsSBY!4;d zAr#o|>nz%H4FiKAx~uLH#l%{J-W=d^Dg8!}rRe*6bffMN` zW=pnBuSaGA(fW4gF15`LR~jG^o@9^Eqtz*W2O!EV^IHS8htw(lR@Jka5J3Chj^d6I ziK;=Bcf!Yhwb3hI_TyF`l$i64%pMUI%Ys%r$ZjfL;xwGKXg}|qO3j5(Sfxr7iN=n$ zowrart9o}g7%@UyT~XO-EvbQdtJ4a2r$+J^t@`y)z48Dx#9n%Tm=APdH3cJ&9%ag% zz>($zPYz_Ha$2X~|G9JsY(`KT?Kg*j6)b`rxDF5Z@R-`H(+{w4NMrD2sek|1zO~tn z$TRyJgS-wNeV>lXiBd-!u;78J6CAdbMS25^!K~vQ=k|fBac^Kwdc8pj6g#8tus_#VyWx^9=eRguBA?Qp*7;@Fk>%{K) zvhxS|?}-5Tjh83h`MrFDJ)-G+UDX6Y1QFEgI7rjI$!d zE_y(7a0d^@5Jn|8BZxw+Db9?+U3huNB=`2ff z$94+TlpX-HWmIH?zyqU;;1tes5U>_4t*)rPw|W&wp|;==yXRi6uF*7oiPI~oft5p& z#*#f2`pqG&?9rlg`pb>NCv3=eU1>P7DFiZA_H9NP_2nj`+tWk$3Cg4h$_~h>$NKe-u z`e}ts!;>4ZM)2P&Y7Aws(zZ`$xgU@KW8`V6gj;O^eC%N3p|EbkuetR>&au&EI3@st zy1gRFo$cctL0W7CRo#(>Tgn-@-;P6F1alnZg*NdOCuk+KyX_QPLZcq}s0%xf!dLzt zZVa+A`s&<{b>2pepG%C4jxrJ2dd5xba`cO%`d-|`#|6*Aaj?nibQ&!V$~9PV1~rj$gsu`(YYWvQzR(sE-nO##eE$GDosEF`lik zl_qWW5I;AAR&QmTrQBBL9XixolDZ2SB|MI=Xa5R}W=e~_X?=P85l5OISd+dL-Hosn zkGZ?u8vKCOHSwyrg``^pcP7ng0lywrkW{&-BWMR$)m9m-(=+k`*r6gap_M4skn=6P zogy0^VW{2wthV`kYk<8K5%ueUG3=W7fs5_x%M@5}BBLgm{f6YP$S6!Lnac+!ORL<) zFi|)4DpG-2^5d@>sV%>T1vh(p`|rQj0dK@!UAXhsUFWCwBYz5Cu(Rcfxwng-K%llb zH2co`GIdupMu_%NB+_T<4}3(-QmW%kMhPrf*ivTh??rvsA=Ki0Uk`2PWcCNU=m;U& z$;_RD64krf5HSbeC`!TlcHwnI#fhr0zQ`2=J0W7kaVz@HsT#UsxQV@NH#}w!eZi4) zckV~_>$|sHf7zMM-r%}ejhp&7-g{(gv`l`;5?@)O-}6#wx1I?~#)=BSJa4;mjQP~Y z=EMeUd_UA#F}>VTrYq_803=IO)nCjomFWCB&047%3ng2j*W?d@)e1#EDvFY5BUsgS znUCbFNOSO|v{Yt3cd1zN6y5E+8M8~Y6)|j`)Uxd9m2M$N7lvAOey>~!g_C{so{ESPS2-zuE! z2EOckt2LyaCz+j?%x;+}q9%lFG>pyvoVQpX;_bD8<;^dqRUN$-=0w<@p&8P;4d#Sw zXbOh-ZE`_)92LDKNJNn`86-O+k-4)PBojT)YeQQ%!?JRm5^aqUK>g3u1)!wr`#rc) z3eTp%bFw}sI0_qK=^+ha+MGfdtOdTkcG=EHK%<5vG7^%HmW*SFHX)+hraPUdRI|f- z{{~9$&7xgqB*A>gt0r#<;LgBc-L?mM8+;nWmnjQ#*(Fwj=$dWyXMhD9YrU{5B>xob zF5iK>DJP`GU|C;&bT;bDOl5r->E|008gGeQZhtnw>5n1~Obx|ZNuiDyG2X#^1*^Af zh~TQhmovn4vfJP4E7e9^$t zS~b(%vVMpzdL5}GVy4IeK9&1w)Lgq@{(SJ`o+p4IPNBK=dw0P8u>4>j0*Av6W%h@K zVYnVsmrO|QiKXnVr<3{`EK){dn-J8_k*=d&5Ye9x9krL}%U%bQTC9BD8#gj)ZPKX$ z`(Zs_OJ43qw9_j{pChI* z)g}tzIt~Ftaawl`qfEUXK4F(iZ66dvIgnNki=}RXZF!Rtz8|Lt^Hpw*E}w5WLmz2u z$MV;7k}6#+2gCTf<~P^YW#)h0VGHv;@$}3(PB7T$LgkUQC!4VJoi2hZu2TwRSHq~y zv)@q5a(z3t!W^|W(XFe2KQT2iM&g!k26_8Z6+Y=HGIVBKy*!;=PUal~dg+5uc_&cO zY3G3qnri~l{_|RrRtP^I%#N~Ba&|HlUD#$Y-KYvYh_l{`T}*LUE0+=0o2J#fLG@cH z`JsVWa6#t^i_Z{tmug9}e+}OcyDMveaKEKOv5JnOQi>P{mwz&_wO&hi;o}XL@Adz{ zN4=ZNm)~B`-{s|Gt+`Eux}x`kNECN2V2+hUt%v>bvQ}ZHF9c-IlX+-u#M&wv(FsA~ zQ(=~4hFyx{XkAzts~YQkU33#H>w0cOV%*q{#XjNiS!9P`u;N3O-gIpVnW$lYo#n)$ z-II!%4gCn=gj{e;fDfb_K1$6*u|b&`t~T>i&{ZU&ErWR28NnSm1k94!#eW{V6m-IS zQOox@IS!Y=PF-M;#D-c7gX|x$Xn!$sV7||)u+Eo2ZV?Kj4Ref#bJmkkMi?gjr?D^#PE9}vCB?gj@@rY*|ON0bq zZ`4o390gf`+IvP3e341ylgwVSL#r{~*`8A^p6xHrj+k~EO#8NrE=HWF!@`0!WqJ=* zgTP{!YxdzuCQ;ewzJ@dN%o(CLmbGB`!n{NHyWtCas|cZs9M&e7-DA!3>Kx!+FYkE1 zZ<1-oa;icEojI!% zFE%9;t_)2O*Tb^pd1RB``J7Ju-)C5Hehc1{uHqI-pI34t1s|+e<5aIPu`TL-YPFbG z^Ork2Ge5un&zUcG^$^oml7b5R`*zE(J2YqcRSAk}?b>~$2b%Q)8J#=ZB+EZ z?TZssH%bncbxbk25WcVuR(*7h+(S4HwQ|bhJ|)Liy`~b%>aLysO^)oj+}S3g@?<%f zwLmN+mB;jP$o#NlVZ2R0bhtjejF7RGRGw}h{S!ywgT2w>;qbPr&SmdeD`5+x0>Z1m z;lPMgpWtoS?u~h*hB$9sJ1#3ug14@No#JusP`j}@%V+iqcuApT<{+%`5^u4sWQ?sE z;<9yZ=>jwHFI+eu?DjuX8z@H*x1p?eu(tZ({()Ek?h`ze+-5#adpe&jW8vKyn0AS? zxC!>bpGWzRU$OpxBQ0W{Um{CU+7`|-RIV^ASmyVe)&q5im;T0|^RXW|L-@w$oA-vt zO&Q=O=+mTO{yP6TE7k^uPT3qc2(DGfl~h4n!H1tzOpZ3 zMZ;SS;bL98uwdnVsPMBS%@(Hing`Eo+5DsTmVV*SjT7^ZO46)hYD53b0NJk$XpRd^ z=bdFG;6uZcCt!z;@-X@VIfLyJH~%#BvcVtc%yJne^epTG6{X+P71@;*^C5B;4AU>n zbGS`>u*NGqii{;CrB;#-y%W=vWqrc$c6}UVyw11wH*TZ?o;oAix;S1GINbSl)NXx3 z5zJTaHy^H=GelZ~QV($JOA3`GX~r-$_uteev{yAs@5FfeU}P;sW0aKYPM!Xbd1B#m zyVyubP{sl3Y^|*k;;aPC5T@4g`}Ly5oLftqqqA$JRvJD+r6K%pc#Q4~4_`_AsDY@m zmegG+eO)LRF)OJBo7lj^EB-rTFK%$yVCg0(KaKYjP56`Ea}I8VS^mwF`u2j3vr|j7 zXs~gnf_8Q8ZdkAqPvSC`III4q;ivQK6fFij>xG|ker$kQzU94G`wDPM_g)Vgfxa(! zbiw{!*;*Owp9lPfwq7x((^JJfWy6Q?yJ<1r9DneB6z_e_v=PGcvcueLboSf&7^g6m zCXVR_7}j@f8YXbkQzl95xomhLURN8c&!L0Y;MTK_Dj^|eCj4FC+X0P=+GW zkuR^w-#23W^Y`enhs^?Y2k7&)DHZ&->wRZ_za1GKUl8Zjo-X!ImK25$O?Aa;6YOEI zaUMK+RCGL&e8|by5t=CAYbxiX}&kF7A*d z?JUgK@b?y}MHyd8mrPZWC_7!*#^qv zi#$s2cr`xy;4W~0q3Q%37>pLmV;Ig*_{7Sz?A%0b_IX)xe$9(zO zr!?WIOE}7;cbNy^CXL6<*>4H;6G3jFxY~QHW9O1z!@;G;^5HeLE<+HeHCHD6PC%98 zDST6T%rOpm9c=bBPk!dMA_NZ$b3boKTBOps+QGxL{V?Bdp5>m1j=wuu%F6db8>(2) zriYK(v%UonY=xD*{Jrx{tT)@-kIyGJmvAoEM`CBB?nT0J7|e&KYdt#K{HV&AlY=i8 zBwMF@!&IGRs*m&_86T&)}uN{vwhfE^Xmkfu*y>pWPGF(RuTyoKQTHx0&A^@wB;*po5(QVlm z7nDB?zv~@WV6q^7l(W1EW+}p>&IonSR*C2`>v3Ycs#W`0XG2jb5d};dIe8td{Tk0u zg{Kb3;ZQzQb06bMPZekJsG{2pV2nnN^Q^8%-R1Dll)c+ESUJ<(@a^Z9&#(M1C7#oM9t%Ete;xWrKhn(Y7dS-U)v9+0? zWUefx<|*lr4r3jR$Lc-;2%7HARq3b_SB7;S7*SATfA0=be@{NY89CCK{ z!Fadl>CmT%_AH9x@0+5kdpwRhnb2kz7X;mxulDn64A$;&aF`Zlxbwqq^7grFmFVm; zh8ZYao(~oJFBemHd2toYGuhQ<8d1Mtc?itE$49qzR&m_;K_bbM3HDa&?4r1#$BLU_ zhW4KDwvy7c>ClJ8W@MS&u%0J8(0`LTm+ScJ%Xba)AH(Z(rdZaztF$bh{el(E z{c4;W%I@yVUv93H2WqYuRRAbH31V>APaeKug2peb5yc$~Ou+iutbm2;0as<>)TfCg zWf0Hu&Q$iP{a0f}2fJJJ;Zj;q8a}eXs5U^Bx*G#7+ju6)w@x_n^`3Bn71lLB?O4<3 zfxpUBZ`7peC-KZ&joK`fIE1m7y6GE)n_vK~ZB z&`{vUxsewyz#8w{;tIU5(@tHp5&84WQ7iw=x{ivBvsJCWjA5;*iu3V0{jgS1 zn6Jxk9&E=)BC)$R?^QX_?v*gUa%OP0IX+2jEVW@>cqiWPte~Y-z3ImS8|RI+&B3kP zVgI;$80`+y2p?r;BNS86Dl=tY*Or|VFO8mBn!7)<0&iw_2a*=M9w+6`$lI+Hdea46 z5p(2ee&vVDL(F7rmU-k#^Wr70kIc#@E?RcQntPPRUl$bpH1ZOD^)8ybT?AIfaZ_(yawNCzp(;JqX&2h2g7h)ga?)NP&`u#zE5oDNfLY~@Qe`nTJ}5K0pI`s#d+xb z|2$jTuIv-!{~F)X&`Vc&ta~OvUHE}Oi-FhDWc5H;kgB`symx!?j3~ovyf+q6*k#{Z zG*u}RQ8ehT$iNh+x0;Q2#N8i#${CI`=w#@+qS0EmNUu3|((5LBd5k-Kh_Y!@^3#xt zjkrq|R>$|?(+=)@n-?)4&uG_m?oX&e*R9B{bS#F}gw)@(G+6dUJ$s)Uc2p!;Sya@a zWbR5=MNk}JE-TftT-&S9ts-!t&$c?kwVS1Aj%b>D_aLv%G>@!MaClEF?m~-`g5!+M za6eJ_hFiZsJpD4J`RQj6OoG&6-ZwAHOew9CljSUa`5 z-`iCRgVkNA9p!Y6bKN79_n!dY>K0cG2{9jqgPT_)LB=JlRHF% z-~|i}^CGQ6)(qu$!EakfkeEYVcem$VbW@2}HVM(P^IOLkRD+UT+v(hEQ(_& zF-+O-N)r^}whqoX#lA>2$H{9=PX!1uiu7BL>PZQ8Ges8@I4@;WCFDHQ`|JI#BqxLA zj9jModM!>$OV|{*iwK3cN_x1yTl$c6Xt}nua#6Wo0QI&&RlI|kzBiT-n0H3| zxoJ!_puoU%F$H|QFpYse++yvEh6SSbV!Y|HUDD%O2Xphta&pRgO2)473ylpePtZa$ z_A#d}sEAL)l~Vktym__EeY9c48&J(DiB=IFmJb@5vzj)yT! zq8*gz|Lf`VW9+5n7!ml4BnZlAW-?E1YTt(ux~eDX$EbD`Jb11VoNjvb~o?l zT5tl_*}(0toRvX0jtwX8?RM>=Ktcob7WUimw%4P!pSUDd4-R&sNs2Yy93H;I<;4+a zPG-&3$30c`sZ?P;nidm3>h4~>m<~4;+W4eAPCw3YjdtiQVVWIg6rcG$n4H=EUPA73 za^`I45HtD#S?A%_l8@3uHNSSdoAo}H7S{gwF@X(l#aegEiHvTUsV+JztfiiuMoHCi z+cO;Frv!<(au7d{kz zc7PuuX0J2{U_6a=KkvgvJHT^eKUEHkU+DX*>Am-RFT<{L`Y!Gl8cFB(Iz2i8LG%$j z*|=WefYYNS@X_u>dPR|?H#vTMl%vlGX}^EZHr^_Als=|mt~j=048S>9mcX8L=_x>y zQAN#|!+$(5Gi7-#ykln_;QILqxO=GLOp{(~>->i>Ab9ciSkti#1;)IaKEwU|ccnPj zxQ1Pu1HWyD&jjQr{7kPVPa>iPH}52FWZ0q=815{q_FSA<{Ffb%Bd#$sP{{diLhD{p zM?t_ndAZYa3AV7cM(?PSeqN(a&KUp5@HwdAv6( zrPgAKf_rX<-HVEbf!e12gBys{H5z&9$3qqkfE}3Q&vd%=*k8Eh`KH;jO}v z;lT=*5=FG9>Y~w9{=>%uU6cjv=#^+BcDM2ENb|m;2pfkKb_+7kD5gHz>b~l)pU0!* z2!a4#=%$8r9GcPj({t`xMSS?;4p((%bs^W7nL+%ZLUbFsZh20eQL=6=#< zXzmn#`Ek$RV}%)V1S7+fBE+_ltvk@0;Y3A(QN&8=&3Fm9kL%GI0jO|-p`F`He$|Wy zu+0An+JkxY^X8@Zb5+_xx{dD+Ie480ch&ow9uGXHC})$LV=LXi;&JBZWY+3PmMPio z?Fl|z0Sd%}N_A$FGGo!wvpyoOWNO4?!cO-Liq54dx5NYvqzB4(vkjSh z^ODAu()K7Z+_W|_41|eUOHt&=JtysoE;4yQgFYZI4=ZGT<~|`mT)HbG<65%Nm|K{@ zzOT(ss00Ya%uBt<>DT|}xK@kEsc+3h^2g64XQ@}(Y?UjZtwXLgZl*J12?#pi;PBWJJH$=JPSfF%5l;9I_S=q`}M> zze;PzKcDpK+b^?L=e7(9XR`&UVyVU&cK;WOfGLZpb2DJr#7=uLPRMGf0h7q^_#}NV~v`yf`vq?a$D&7-Z8#2>Y6w$8{VZSiaO`#?e#Tw`P-!?mfcIJ$QG?wZnjit$&3Y3Y^o{g7Z8F2bf3d zzz!ERboDK@+Oy<4n<1*G56Nf1&N~&mI2O!)#RX=st){w(R9c~iHdDmDSQ5+yl8_%D zUTvk*YLwe7!owp(x2qTvm4zUXUzqT0#SW*5o?*I1x8GRJ+-JKxzkcm46xwTR67#RS z;YkYs_B05T{;~D|^|HzxcU1F#4blu4W?uU0X19gL{i1$&*USliidbyJnzzJ3^7AzF zF>W?<5*m-DG;zMZ8H#?PD~D{6V|-y<#PNGnFW&FdY|R(u3!*p!2dZih&owC?m?KT5 zuL0jvYR@arrMw}5#2GWqm%u6gclZCF$Opt0f5%!c42wQH%H`}~`wK`&{raeJgXyJ* z{~BpzjGX^GlrAPb9y+AUiC_oC%8ToD9ZzPvH78BqTFC5JFC_gC9O4BWP)3>jTKg(+ z*Pp=sPyw_qG6%zVE1~FNV?W!U|L~65)2Oq?wDz`<5tNQ-8X)Zd6@Aqd*@gG>fv8f0 zFUd6K^91M96N?Sl5^qtRM6*UAnkMqjZ8jXKAWuNWRYv=3ir7m00P0o{vlDKvNN9gv z#=iNMs9$w@HO(x`pD*tXqEc5T)F6@mSNZUQz5g^{5cf8%I^=_q(?5N_FHA0BFUf}T zC_oTyD0j<=j#pBXC|uS8`vppUC+T1_@Kw-z{Df}d@xGy%4+BB8psJ>gC2OUt#T4m- z%kR=h1O!CCV}W=5AJ{!HJl3w7`I+^lmOD7`fTX?SV;NVSIXCYtuir73#GW;+vwHv+ z@Xk!yLiVbA>Dti%dW~+;8BHQDtH|kV>9MDcotxX}0W!awXaI_ySrd))Xh_m26&p9! z`Lq@8BS#>Xis>ZAqJ@IiXz!R|YF$nG34h9?9O))UXfLSuMCRc|Rx^0t?q^3rXaxA2 z)PxNjV5S6rT4_fLu&T*mcWvtRns0C#Iz;Y+x8O z3%ZKyMl!467@*{IkQQ3W(7GHlfp70}EXoeMlag=t-8Zgj@-s1(K6%QKvSLR?g3#I=n0n ze1H&xE`lj;;^So21t<0==9&qXJb?GyFYHfWIMFgqiQEqC>f?bN_Rq_)4h79Ie)6&Q zP$JkLQ?Eb|%%?=|EU06dh79k`FV3QS4a~W_n6K4emmi(^<0jaJ%7Lqt`7fd zE_l&v@#;pC^`W*A^_1vH0qd-)|i0U2P zw8lV60vmF^^K%k&JFFNu3uK*5&~dIyeMMW~YwjnDl=<-!T0LeXsd~2to>F8V8!GP$ zE)7DYfY3)~w6PO=b?I_ZbgeFM<^Xii2gIHKu6FxmCxpaJ`bF@EL3njMc0dc*j^Csu zcT6+JRH(w-#kFe$EMs)cq1hE!!TdpBT3!|+@+u@ah_No78vF?7HpFbFhA$*aoQ9s=Z9CK3> zg!?iRG(7hOTbwibWMGX^XyNEsuhPkQkkAHEG(NE1;3XGS2ja(T55z?qh9GG6z8kv9p6sfZPH zhjZn(&|=057bPKe7QvDzz!6Z_YAQS7^6lcE zoOxWG2aHd~wkx1AXbghigZ9O z_*U%U$D+>mWy`Em3#a>z7vQRj$|3=m1qJ)jza$zGuW(HwyR95A{5U7SZ258K#=FFK z*$;G@y~3Q&LG?MFq@Pnj%IRkL=&$7$MrZcmGY$?)+WNe0#d_$}^#`4%Wn75`4&Zm- zZP|eLGQ;$`qxI=}rKcJPf0>Sv(a2RZ3G&F@wIUaa&nm-}8KNTv?JHPw-B&{wh;oeO zr1vIELA6r{2_mwsN*L{mNk6G80{I7L%$Oo*gm=n7V|jezi&rm721~LFvhN-{Uv#!8 zt8aV-W0ASi`P1&CP)wwlNX(!;KHW#g)IDwHXM6qnZh1yUS@!e9kBd8c_1AoGnuCjL z3Me{32LpNosyd{ipX@nOcws}YquddnfP;6vhvyr)Wj)NZ(FAM|1@W)wc=N0ChvmWU|bL|#iP zu#F>Mzs6B(^y({C(+WtYO2xF(HE37y=7PAPrj(1gIl#@(8QIV1}#vaiZdux|02=7E^I5PD`qA~xaq~{x(-ZHBpwtg zmPYo^jq_6^Y-x zV&0u`*K+y6J1h0M3`7*gxhU-fw{x`S0jnTtJ3LoMB9n$1EaE)4T7=PyS?Q@R_%v9S ztH?OPOEveJk9p^e;Kx&FlE68n_k>2Zg$lCtS(cwW7S0|Gz+~jV)jhX#L?eW+PTi#^ zLxDhFE3%O&%0HZb^?olO+$im>8lYGwsc9JamSCs+aaf8OfGIgDUHFYpNsM;}=hFP~ znHjM{mMaJW#Oa0|R16Wt{i!8x`2Un?n^qqFc2V6+) zNzV1@mq%UbjPO^-Xn_2TO(>I?Ub;@TO7$8JR2>XD_m+6)_xO&kyiu~n~f6>|XHukcEhMg|i3LPZyPu*G8l_r=i9Xhsf#iU18huV-dQ8Y1KNxFZ7V(%uZ*|FXAS01V z$MmU|X1D0xB3N5cN;guyTuEP(e+0a(Gdbe}h;LN9JH>WVAHLZ0OMo9^$e?1GVLL3# zw>dotG1A9?D4#eaRc*dW4k@`1r47LWcx4*jxLVUGT*$SE)CQqu*FgtzLPn*!^{Yjf z{c*xd-8e~RKN(XO3DN+%md?32w9f(v-3fj#x0mwo8q=F^`2h?}vh*@BM#K%mHhs@ZKlY~G{ zy7qjnw68$3Vd%L)SCjar@~}8*cvenWkobUiig`5r&X`tDy!p?5(3}l3l3tWiB|~xDD$&1VgEEhJ zwziyMl|-LnQ5tb|H!bztK3Vh|jYN@ve3|02X}`G(clHGG^g|aBQ$K3xGGn*I9G#G% zS~7A`T$i52LiUXX+@;UFbD{4TBbS@XIsS5th_Ep7<)&@cg6|)W*Fgw|;+q~&trAly zu&!6bJ@@P{f4wbr3`%tjV~vbirO1$4`}dG+i;W-!H?AiQ1XQL({>ifLZhcF9FC_vz zcS2-@jr(7gkGz+PaTg|TcVP!E?Bu*0H(JvdVfQETf_&0iAopWis9IJiKM5&l*6Dcr zUv{_ly601R|2rr}c^Od^_f(t}iPg7NXJ#~lXFy>9D=J;S3H3sM&Az>eu~#<^;vSY@ zoXh<~wHv3&k4y#E8=el=kiyuft9PywFFaJd2GQgh4UM^|4a7kKe#FVrcqb_qbOb&f z1*EOdOY-TGpG`AN5r@K4KDz$E@SC9n;6Dnk~NENHNjX9w?)fi3bU7+8lHwUJv0bCt1nt%_W!Y-qIXL~2qxhxf23;@iM$t1NnhXxN9RH7;RSjj2)?>_X zt;O8{wT8+_aUwtbookN5Qozi+xQI~fT6^Wh3ms~jx6ew0-|lKubfzjDIJ(^dTAUkY zvad~2n=uK)tECa(*;ESh?-iwuRY~+pJnRm_sJ6IFwI{{3`^lPlLFE%rU;5Uq6PHvK zP_i}5ZHpYimBU%IK#kr4b)o^F*8Ln#u=`7st!vB~8>Z}EurAM>Mn)K}C)~Q=DBl~i zn{7?UPYb#w4o8xAO{{fn_pA%4xUv_UVo#0@l3)q$>!0#P)k;gHmz>kNYPJ>J4CMS` z1~Il=wbt*Nd&j!#OlTDum02n!RB z?g=(rFWMwLcFmcoRUcF%u})wu+7P{|ER(uk`gs5*z2p{>4}1HbZrD)a9tGr5n=g4& z3AlJnEd#e%uFtV>kxRE0&VV$UVg3;qJ4!S)c8GjJdRNL1ndVFY)YSq885MxZ9(YaO zH1T0!DFXZ_N^!3OZb#3$HOTQfxK5>(Y3MVH&5ae#Rbr$T%D;7v1ahKJkKS&^Vm!Q7 z;yB{QHH(edEB1+;j`C;jHfmQy0%l^MQX9Fz+%S^%^F|z}_r^cW%uoc01NrW^Zt0dP z5#aA#79QuxBblE|5iVy;csbxnhX=ZkBT^|vfBt$SC?HVO+?CWQr5}Jv$}mQfyZvce zAk-LHqAaA()7iKZ(&Z>~|ATgg@7@PeJhY(%v9ojBk=j0Yg%J~a!q5W^We-sJ!G|tp zi|*i_XXp%3YMNTGK`$Mu{9f{}m1_jf-){Y|Uix^zOmbrm{^Sacu4DZ^M1YD;Db%>m zoLd^+-Lmn?QRUMmQ%<19?wTYaCrQNAn;?-=V}Gxl))JBy2|yV%;<`FTI5{Ef2MVRq ze(y>fQRDU&TtR+iigW#(lj#CU$?O|*^BZ*DtoFf*W|bBqHzIEcjXS9)lkKpKX0_bZ zq7QO}&fa--PR>$_bsp*x3o;qJs{1D7=zdzFM$*a5N%(CgL1!6IYa?S#l>$iVL7=5xq9}@zQ1RvAhd{9hqNe+p|pqa>&Km z6fkHBie|XuiMs01TIDxHHX$PX`Nb z|E*tH3F#L%B00j+XXTGe?^kWu8*}q<#3F@m^hg7lwX*R^f_n5A#9Lrpp-Ob~_!s8G zU3n#g4WXm?2ygfMP|HT>m+-PaeYOBp>@lX-XuBeZ<9g=?-k$&NsmaswF6@%*@-i~U zR6&MLAecRKzf0 zYc0)<4+T=_8z9=W>GRWyd%K5xeu$17Ac({vBjqt4$xdx#qA(XqV?ma&`!Obc^ch)i zwkA>SFF=83r8h2R0=9Yy+OsZo>`gaTv8b>=(Vf!y^&)q+t&1@BCYV(x&CgH6dHyinjq8Uq-E=&FpVdS@ z5PE*Zd2hK{MTXAK=I)inL2yMO^`Grpc19;Jn8-J}fr^bccZxVf^D;JDWH*Ig@1nd0 z{~ZVp2g;M27Za;8xTrzlV479B2d30#r7K{c*9yU0qi1#{>k%(z=|Xf_T>>*-+1X zj|-IpaEx<6z4l7>$h=<>32L5bwj@MXYiRkYIgVT_FGoa}n|3j`kwk1IcWhAa7dU#@ zEWYtuG(;6!G(8VXRQ10(ObAOJ_lV@dD zM7iT{5i$Gz;RRG`xGj5TKR)$f#`#v)`J3Dl6qTO!7Bs>H=GWl+(nLIVy>=fnI}=}Z zEFdD9XKEJ5ym9G+Lw-u&-lP+yliGL18eI81jaF5GNE`vj-i-rM#cGN?lxsKos^pTZ z{-=a;4dndfM3=t6@*Ove@=4`MyC&L51%X_(M>sB8%FcUnfTKa1nZ3Wbm-IF|?hXHw zhr7A)?@1oupnhJ9c~w(TOa?4jmy=1HW|8RwasqUv(i!en$fbPqyonsoi}v3@b2DpJ z5+|X`>s`&{5yu7I-cRi}n9)!78g)xE$1K}zM7qbb8acN;vPLhq7F^O=s8zTcn>beT zkQ^@P)>l#BU)Y>U&-&W3A2ePFtDuT5+EbD4@|=FPzwRsL8@oIh=&;a49)qtnv15Hf zGlC+cpk*g61b^2(#mRAk`+6(rV}cURwTM)K{J~kLIiV(gUC>*`-1G~(2ju#c22k-R z{sSuoZmODU(qiH95y5IUzqnDkP?5j%``Vk}A78!9<@dOuCbtxiIj$&bZ7lpXsQ_XY zM$!|4qcK8Vk00qIJYMfBu6m~ZhZ)yW_mM}hdl!xj`qmELY*TIi71EftzvL3L|Ioi` z-iiHm6z`+fDZJH-JDCCuJ&&irjM&?dr$#eUe(gwHDD7?@y2_sm`WCLbBe0%En+QeV z8n~yrBC0_Yck`RR^1j*G!Bb`!IYQ7c;L;#({ryc2Z75Jq(~?DZuk9bpM5H@Qu`Yw& zum;D^pk+%`&dR0dcs{%1$tdSYlLOZ6mmR8_QV4o7GRAMrq+}Nyo|8y4)A<-cq5j1S zTEJCz0sCu+rgzZj*T%;Fz>sLEVA;A_L&hz-Qtw#Ng7 z?B&JTuYux%I1hry_C6Q-@{d zI(x(!5H}LWL8@V17h3Cmkm`r7hTveQMDOcQESv3g@dv$EC2Uo!=RL!IeMa;Ez;D&` zE-fLN`C96v5R1BQw2X3{GgsV~#4W~!a=#FTgM5$}tRHCXBBmTt0ZG~8h;J0?NHqIN zNJ{SGUAwVHpp~GtP~&TZOUy2XpJzaVWkVj}RSVUc&18hfZOjtLWS7CHtz#!WCe3=R zEtj(ziLD+HD%k=M9?+?vFn zxy{n-=`ij&9?zam_uim!VVQfAAGu3-{Njui4mT)sUe@tL|Ac#wl{#3wSmV z$2G$Tl%CM)ft8is;CaMSI=28*>Tj&WfifH{P5c;844@HX<(uVDhr{klPhb z+7u-EY3ux#3;ORQRlJ)VG9BU|K@oXN{Q^Pj^w8(GlN9A<+%2SL&S06weP*+cToqMA zWjFR^)HHfK8MGPXzHjj=?$w@qn2fB{D-HyWm_@wU`lf3{EoC@Tb4Jj8Q&JK`+Uw(b z>9jT0C9YhF7SUxc+mr8FI$Y{Gp24oY7@~x`cW3wO+Fu~x`L{c4@FIQQ5;QPmCvhcD zd4QYG-e3NUT5nG8iDmqOz5WoM>nQhWe6|_l-*D_$Xhg()K3P6o9slJXD%UusuD3S=>zU%58{Ih4pijgYtcB-%a zS<;uju)~L^U592u{f`^v5V^CWD(;iT5(kd!bbFuve;9iccqrTUeY_Ms5h|6Pc9moc zVTMYj$QBYZB1`rj+l(1Y5)wmYt1va{h5C` zl26I#e)mxlniV@yj|g z!m01XDk8UFIN3^Mn-QP4O*;Q6bUf0oKRG06_|nGZKYYo5_*((Ql~c(0=lQ^a&*g4t znvL`Kqa?$6&c;ZJ_D$0G#fEgYr;(3hcmlz7u@6((aP>FP<1Y ztIqu?|MPkH6#*AXi@vWEU&s!feJ0wQ*DdXRf$?u*YWpM-%i5t*3eO)acOZ1cO0LVm zsxR$;@{_Fyw&jOM4Yqy1cCj{uc_j^tqzVh_NDRF^WX(q|phLmX%wE#VuHnVu6)BrT z<1LsSMD#iIvClrK0V_tRPvQOYL0D+|$V4Y15UO#mzG>U6qf}$UGrXpdv3snYv=CeC z{y<7p%$Ea<(dM5`&p-nQ{;}&QsZTU_hTfG>P*K%?K!`%AS&p0E8W7zevKDC&huDF9%d1-SKE!c1tK`rv8YmjTxdHI zfvJl>77?)~EK=6kbc|C%j9o%3!wl}kTMD{TnTBu)ER;`JH+xIjiIFK+cuPcsNb*yn zQ9=2e7uX|688vv;+I)2R@&^?QBf84OWWX0(zOSehW0EXXq8gO>%XeTq>mM$o1k? zIpRdJ98B%?#Lv#;wddjgu(Gcc*@&YJE07@x2IMCHvBWbe#Z(-ZFUH=+yfPS;vDsrz zP-E3Hg%37OMUG}O&Z|vboMlv9A7jWhF#krgaeBOQ39Ve+WpZZ5qG6s=GpCxANvN1D6dnQ%I9MukYUILm`bpV1m)*9&f% z=T`#1`#%0eCR!n1mT~lQDH&>*c}e2^?Tpb=)w=4p)pdhE@bK&WDACA*l?Y2wSA`d!()(f;F7m)Oz<)-_2A7N08i=?5*VAQ) zC5nX>mGrqT=F>C(oMgbXHWrLs@!FmBks83UZA;zb)~?@slUO$v1pFHqA3t7p0VM}b zVwH!LhmCU8W4Gm;Lu2>-L1@vu`(-z1+kX-H`vRaKN?h^!8_o&*^9fk`^V%SMVZu3? zzpy@i!Dfc{rosOHe6*tp?ea%_wp}_m@a@xLPcCZjUH{$dJ}R(US8hQ`b3BUdSBuxT zH%Uv0#XmaquiY9M#v3N`;8#!sp-rzggys9S8Y#?k)`&~Cq+AMBQmB7NZAda$-KUY4 z!0Mi6ZlWg>Gav3-Cc=&fPYoK#Z8%F{{Lu&TZ+4L`*WpHVY)*9{yrf|#$~7MteZcEK zIeL8!>GZGI>h_%Siovn5n18o?8pVXyo65oul@}3|%q)B5#MY3013%0>qgbBFA^nB&6fjqU1zap#qF1HxS=~JkKHVi5-^CS`o5&N5&3Wy|SY?p^2vED+ zNBKy?LLw|fM>o>R@0Cx+m-e=0+~z^P+?5bRG5D&UnyId1GX^}_WY}BzF;~jJ?7)&! z({fP~tv14))9V_o)PyKd;aRJFrkWR4vOb1Ry@HP?U+Ldg2&32( z7H)NY4mQ-rl{S27>(Eg>(#iVm3ggx??v4<7SYc0iAh~2>i$|q3j!rVH@pv7J-x(@g zscA!0Y(lJQM>|#3EkAwkYK$SYy`JerwDS=}DMx0XbRjfqQ7T|I!pY%iqt28^Et_dx z5s%37zx+FMgZ;C)x(JQwP+#UR2u7gc;Y(i}{K5?UC!bUz6wItw--nR-&bm}pRT-wk z?P8P~5O6Wr_QT@TQR#a%*6Eb=3e8BgEt(Rf5WEL**%_Dqx>&UR{J$(-#g~J$5jiNf zbKTs3S)3JfW4d==+4Z1sU~=Vte4+P^k&W$;{4{d=dKO>cL69zRmkDXVIQ%jw5F`2t zxbRGP#fx6~$q!p&`kZiE*cDR^fo9(b?pq-Z$0z0l2{Ev`+9v&`D40tB}-{u}$ zx7NKMxIMXdKCt7POZS_9ntOt7dR7>@L(+4fPHDjCQ4&Mh*qJB{8P5Ao9>}G?3>^h&3^-?M zxm9IS;^+BbBVTVef(1TvLGBfeAL3_aJjW0ASTsNiv4>`#^db_ybH;$n{HM1wh_YLr zMz*GwYWIQ9E11mIf@krT-cwjsV!BvtNt|D6lqDv6){cFmDU!cLyev^R(B0I ztQUm^kN(RR`st3VnQEeu?{P(2i^%a7I1Sop;A7*W>qd(m3%%vQ3O2Y{H_6>hH-Hmu z|HJVY9q12C(p1`XefXKr(@ZGiRYJN4Pw)hS3%+vl!}e5ZZw;4UILjF zT0h%>K~k-PW;9&XY#w=weNKR0NX%Zey`+P0$-RGA2{)ciaaT>WTS2Wb5|6aqchgB# zy>iNf`N<$XDPrAg4Jl-+zS=H=NBQEj`eG19SJOPr=FSzzKF(GTm}#_Zxv};&UEsc% z&0Qt6+F@AG*bF*WbX0tV3yN@v_^mo&zwx7>vWU5VXbT8!!v;}daz!g1@+6YRN&+6fjatm zx0iHA%6JW(N7CQP_%hhbmxG%+?8g8yNSm2+##OymmWM6iif>%}*Y=ke0qNuS)dqlX z-WOSn>W3xQk|X-=d@SS@JY8?WI8`lI*d=ISM}U}+e6cq5 z6uBds!HLY>)qT+_wRwK$)0n$p)9AYM`BVmRfmA#Zj@|+CfL>oNC0^w>J{A^aX6j!T z^CmIlL;RA6-RUo;L7EHt1PTtUVI7?9?w;jSUL{4s97bMo{%#q10HlK?2V!Ka-RNZ3 zlxc-s|I=b&j<%lyWL*sZ-U3kk2wyQTO4NRieYu3Z!AnNz=`+df@@Pbw3eo%!^0iUVp^H*;DZ%ZwOac~=?eWrDQl{_?iT^iGj z9(HzOJs+;lE{!Ma`Y^At`4*j&jVQs;tF?{>av(X32~~0Y z@WSwC#OHuA)2|C+pYn4k*@-y2NYyy3ZBOnjgOU-6l{^Ss>bG^HoR(4Y^mbg)J?E;6 zs>I}Kye8)_XA(a{N*Xp$#0s!Pplu0%?aofb@^8zooAnB~hZTbkGg9f9--alZ$J`k9 z7V}wv+=|8ySMe%T3 znT3sVIKA0Qn8EA+fIHTVa_6K%FAElEU0L zwGT7il1i#4L}|%(KO3awb#ou&U(9V-u)7Y?!J>w zjbSPphYZV168DXyG6R0b$a2m?MeS797l_ZH*>Ct3P=MLX%{VVd&T8Krb+9E_%rvr; z-M~+qy=DcG;Vwx2d3=I7omYM{AGN1&`LTPTFO!rlta4_MzSE6@z1#LNv*Uz5xAWw+ ziwmjA>ke;EZ{lBUR$E9N*a2T`W%30T3%*TZ#CCn7{+%l_O{#xeeh8`+wg z4@;sZn=jTTxN>DmcOhQIs}-j&eoom7cN&82iAjKk1Ij{k?@QG9S0 zyJ3f4?S#k^X=Bkc?%tw09-yQG8I)N#dNC^?=gp&j2{8fH~Bkxf5*RjpUs8tr37pz3A~xjWxWWS#(}=|f;& zX6XT-75?8tZNTFv83k&# zzYENP!SUz1KIu&8VuIJ_6phXn0ZvZOqB+>?13?>hLc}AP@?|Ga#qp+Ml+;oT+O~}H zB?Q{YtVc#6q@>A)47o1EVB&%+UNVFT1NQoz>CTW!}YTpO?#*JhdQyKC!JPf)Z6M&zsHZ z{n0+0;vW1-lV4{mu`?#I{6}&k3y#21Hc)b%G|mme^P?D4>M~fZJg}kwpxD&`NfP&`m z&qK5Jz!am(h>x9mw~;#{(6Kv6KFY;$G_pZgABDFI%-YlMqLH5#q$RA}U2Vr^so=gi zG#D{fz02&0n|;!-_Bm{GXdUdW;j29+XWASJYDQ#E5#If-dNY zQh*FziYkAVe0!s^yIeF1j}?ez6TM!}T3HRqcL2FrHelcT_%w(h+5OqKa`AKXDvdWr zR%a2*^^A}kU~B8xt|O0}^M55~w=l{Xk6l{`yEX}oz!;PPTqCxmWP__Iln{gibB{(^v7C?)dp;UeSf81n4cPKghvY0#JH zmL#xX##T66S)Fx41&&ewk4l=Y1dPa+EW!rLkd3;E3HxTFvT2J=wN`+-a>VrlNLca8 zsaX1U^nr~OyMe?&zXpVR@Cg46JbFtzN*En%+SQ*%@wos>5>OB&e;w152F(#HUyl3C zF_xU~Xj-+y4Eex+VK)}gEPr2=eF%-B9c;e{tTR2~mrso<%P{fbKNtUmEg#w4|NC5M zvB^H+pbcl>wE)hbEe#7S74kP4!qb2FU6zbY`WJUt3etRjGlDxvjFLY2qtUfEn4rTO z$ovm%e}63Xek=2rN;|tKDT|tBN?;RzWyYC=4n&6B?eW^jm@uroIf9WrDGVa-zpbGy zgUS1;hr3zD2?db+gi=^J3+NfRJ)sbnC)P=g_DX^Oq}7->CLtQ1`HBL*fCSXfzl+T$ zEIR2(&u|b_m|!o#<*wJ@wET}A;+6uwSrA6zfGKQ#7jnR>M#$8yDpg}4) zQ*@9??gTh!{ipTUF@-p~L*N!0=qLe?{#{!GLJfTD(=S4;%6o7@6cof3|9%<-Jk0{L z;w%C{KB!>{PU}lg{5~SZw6;P%^wNJU{dyV#OW$Iu3_cCSm%r+tPx`NR{x&*bEiY>m zlfBphdIy~vFt@+lJ^U;t4@AegE@sIC))&*+cxX1>5_kSv#3ylAQr67Ue-c^iiS(v` zBog8756UOt=fCm)iP~kI zG(S(`^%u3L9gKhjS>j??-74-61F`DQ-?3%gmZ9j5DRU+v@Q>%gH1GJs4yLSEE(J#U zS&on_(4+ym?L3IU>urIWF1%@%x%xU0Nt_+oEl93Iv|MOe^WgYL&xO$}AElO79yV4T zM!ZSgVsSFf+;2cl52U}Jj?fDr1wKz(ez;=?;Qz})6B1OFzG7^qc}w5RhcSCuGj=ua z_M{B)EDme9T%lUwA_GZHf@*Cg$wNF}xHl=?Sd_KG!Y^yfzV1OXtBLs|%cWI^P)gwK zWh<9$Hn1Z!F^TSycgg%-u>rRsa&AnWYIQ|&A2(EAHCOadu`;r#bXVyBwEp9P(R-%Xnh zXfE@B_DxP(61|fN_NgxSzN#@>DgZ710RRPv=Nos$I|CkBMIHtV!%n5F0id1klN$~b z;0gK%oxF}Y0Y<$&Y5GaA4Wv#GPLtN#j{s_eR&yu*c-h(GVZc*bDg@vPApA1Rn}eWT z0-`Ut7u@AqLV;{{t9BLx#y)h=3u$+q@1H4mJ+v&Wx9esEw>4S(?!s;08^(5GpTEVh zQsb|d6-vI3N#OjqS)uPeMaN2#ghjbSANuI=319vgTTE2y*N(}1r{ zp@c_7l5ujEfu=0*l!NmRAJDJw{~H>;tf&4&)R?N17^u5l*XT6fbXV~Bu#_z&<%m2c zgR;1HM8&&3B=jg(b_y^Hh!5MDrUXHJy|MSa1&s|uW9@NYhYmp#6?-0M^JY;Bx!aka z5L~_eAI74mI^B{O>h*f^jfd*}b~;6QOSZB(6O0wdr*OANMj{{x4Ps2s`eay+W|<=8CNL3qISQn=S@Wz-}Pf_cg0JdfuJ0HF$kF;?yD=)V#^X86JqnN`jjF@BV5@s%Fv*V3!!ckzu?~Oljuj z;o%X)CHv4Cgak)hHR%ZQ(DfdeW$fRJXr{6x`nw7=@nz2wk=x@!Z28uLAXly9!bfJ) zGerYQqvNI_mpTy{c=}Y_+fnglA7ei2|Gy=05@yOt6a%AjY!Z*mvNt2h&|?Q6RESS$ zuGZfeo?Y&?Zz#PzF{^j4zI0LWPQSYwBokl~kaf4!rh67=_7^!U6f8_ly{8zU;eMUH zyyR~T*_#Bwu5QG2kZgWc5<`GdQ34B+p$x^FcAF-T%6d7_GgI?*IEV--%NvrkehJ13%rc8{8W=}1R zML2<%74kUZECqk_a1B>UKJJo@^TslPUW&c-AagTe@Z)gz;!IV^Px_11BnwhV7|q`P z0VeOUkxIvBJa{JPN&jQZ$zvcupTR8qJg`+jmI9@E$6U7%DUJgWDUCAG8!^uUvF3?O z`1g~cqH);KeEaggSufQ%z%er6zFzxH_DVOl2%{>Es1=M-5!UTm6 zo-CjyXxPYgOw_ztYKk$T95a0OjY|`;pKOsTnT3TFbI2KEe|~ZT_SB!$W zwZ)2di-MqC<2K}T(8NICgz=Mc^5dkrZwupqYvqGTlhxNaBX*?3_*S!bO|SZM2q&mc zd~8h5Uu5!p1lzGQa0R;^I(4PJ^M+ZH6$_S}Yhj+>!cQZQMmg~+Yd~K8`~tAuco_Qc zV}o^hvx28_RKok|_Uw2>JxALCziM{l$hH0d9NL}&U7ykM*metX(PzQR*N>}~@XiiS zHLug#Uj{^8pD-}b&~aX~n0v8`IB;ffg!$N*M&|rQY{Pm#EGlTm6`t>T-yEU}$9zfnvwhn8}Z<2elhp`N*q3L+ke8#wT2a*WLPd z#*R}-!#AKeCjT_KsdAVb?(W@ML1b8tP&5lPY(-OPr?NWu^}hRz#+z8SrXuI_cNos| z8`{RKuGY1T4j3=J*nWHJp80(B$YGpCVp}qHsO!!z_Tshj5j1wlgg^+cYA)jIrrX}% z3ql)6QX8^@w!R8AQt03xjAy6&JMnCSIxPqdGL)yX8ZwMs9TL^p2AGydz~_N40G?_i zb#8{DKOlF}qg-BNCnfrA+!+Bm_$0i8NgBJzyB5*vISKWVF2vc*@sFuOLNPWr!qp1dj0|CbXn#vD^c(c)RAcpKRI3~O=QgQPGSJwFH-pQpcOcsKN$qs?RI1iW~|FXNlt6J#9#XJ$>y%p&38p9SU63dG@TZRAZg_4N*t zH2#R$q{Bzq);TL2y?$zTz~rD%QJ+&!K0w_`oGt~WMOGQZ<(aGa#?t;BlfI%5H#6iP zIBx-RMFCiM?_U%G*or22A9sSA>UF|pV*?-!NeI8Qo5g-p5n6)%NQ2y{S z`!=(gt+)D7g!7c&<)uk(tbG&UE9(_I5ZqWyoYUq22LV)tgm|@+yB(i;4r(YK^QKu*2b!%(=4?WS3@McKua_ znzg-5zNxMlFaFXCd__>y%|)Z}5HGH-o9_G|s)2PA$f>rSaXaWW`YY#kCPE_*DuA|N zNCsxHg=bzUue-}@3xdT`B#17nd2ug^i~!00eE}VFXnoy>`H)_2U=2U6QEll zBs7iizF4&9eFY_Zv8`WdWuktv=+EVgf<@{oj4hbRFr#tjP~onbM5!9hjJXfG*kQo0 zwVs^KfYy(ep04RPm*#FB(3~&+!(AQxFMI!2q~mIBnO!$UC8a zbqyi%_b5pt_TNEMF!i`|=kmz0nw0yLlmG%otewy0&hQZ^^e-3Bd_nc^rGg@x914Gl z!Pt`ImRZg#gFdL7td@?;n2;4D)ieNo(^p9#%#!*JTi_E_=wQ`_6#MH4&T87Hu^#yK;zQK-mA!JQ`*k|8K6UUJM7=r^f z>j4>XqevlIk6{k#jh4bhBdy=Ip*5JERRj zb8{@AthFAx%N<*bh@O#O{@RIharJx6a-R!DvU@Am;Dsf3Zm$gyY%#tdK&~|BDY*zJ zZL1(>-;QnZ;$CU(DJK*3x)Tcgc`L*oi;$T4w)CE8BSk zAqsY^#yO~#^Hd}6=lrhY3IPw4+|WgPrD;2#XrCp{UlT7+8vq@0HFPX(bilfFxJ=8w z&=HjCNK8QNbPP?t6Ojx;s$i3rIDkPM^s&%^F2_t1#;rG@wi1!_g0lAg$M7$y%KJ{e zz2JEh3Q$Iu?4S1$m&|t%6wz^ zcj1aMam0z|D_VfBA=q;5(glN*H`1aaBmBx68F?xfeEHM`^@{P3Wi8trF&y>stYdy& zwefCYpj{69l!7m9bD7!JSfSXC2$kuI)FPDRDOB9r#Id0s_E$%Dl;3Huc!8-;!lPuG zF8l3OGm`0=(IsVFE*j@1JpzhoX4$8!ZlW-q_f9k3YXe^Kz zG@1687ZDK}!*0Wj!-Ra?u&$|yp{YuW;S788}?LkKSa#T(C6e& zMteZgvi5)&%All>lD**fRy8E4RORRABtUJ6F_-D2B)u^6VU3pGgA%H9M06b7IO<5h zusBfOf}Y-l^6U({;_awggOC$sICi0$syT_KSxsC+W0gF=5o+t#_Ez7bUu2zV*iDi< zZ;n%Sn1d?HPm3Dkgf_eIPK%aP-lEkhHp=SU!J~Vxt*Xv>YZtFZTsiLNL}nh!7)WSA zr1I!fSzk&8gI9%uVp!d8@90!ThzZc@_)j*|T{2=o?Fo&4_jY4Qr4$h@!hb4LbKSt+M`n9c1! zrnt8b=dD#dCyBS!eh@24@{l;w)M52S$R4r^ferGLho@{eo{v&A(gDRktiDYjuwgMg z3w?;3QQ?&wBxu@>wIj;IuvD)>Sy@SQ{RbTtb9>By6}?MSsB#oX*-dbr-*$E1%3HCF z0yo-yM0o!PJH{eUuM!q`Ox*g# z?n-)$CT$tJB!25%uk&eNzs6`b9E6WdPTI4aSNBp4T}7x82MEZqL9ck6`*tjtkq~&Y zVBf3MUyFU)G@okK@Dk8*@0!ix)JZ4X5E<(q_u1l&7HDZYgmsh+4fuuee%+-0TDl4I zo>~(hgy<=@4@J}N)W>{5DbTOT_=B#jhsoTPdY5oH*g5C+j-!|}`y%ovr(x%Eb%x)n z-Zw+mJOihe5?s9jPy?KGxuB%woVbDq>mA&)`rH)(opj4`@A(JdBP%^ECzD;8zO4r$ zR}w`~&S^7{PkqomO{s`!TC2_8!(ix`^LAe;nWKtCt$Zm9#h14BvB+hD?)X)x?gfbg?8%jPhq4GpNIQZUYCOW?3+y^L7w_kn zCF(DBmPih`m1P3NCNO*JdGnJ*cQ()*u46=F@Q!BwFQ{k3UulyVoD5mYZCRvD%VJaiY=WCT6w}NP zn&tY@n5gTSRLA9O^Ed87?3(=O;u*rnNotv#iM`xWy7!WwIwgM(AZu%`QTy!7bp%Wp zSItEUHk;tZM$ov2t+JZgntmEdQ>P7m!=Ld9!3oJ17c*?hCqABW!MkOd!oRlvi5HI( zd7~O&C!RPB1kborIvjhoW#9DKwZSIK^WWfm!qSwBDE2;D)a}})7JM$w9Zo!?lZFkk z^sg$*d%YAL<$l;L#$s3qTzJ!v7xY03*vzjXXbK(6@z4h66974Tv2uJou$Cum&ab%^ z)aO%`ou?mj0p9N7fHmlOmuQg|K)7_QWCqm5@H|)L1Ic3dyV<`Yf~&vs%38}y6Yb1-1-|T@^u5bF zvB;Cux^1uTSOXW{fditdG_u2{^Ow5R#mV0Tu)+XTj433TIlB2!-c23*nfS-(OV_?~ zB(J2$E*795*c@Z{<S>!bLi+lkY; za}SP@o3EQ6%tP8v$u*x5C-n*Y3E%%&dRE7X4^NL-9@!t81;U%_NLM5N)8}W!=1{}5 zP*LGJ$AvbOh+o}y7!f_%lRHNL;8naSzM)HaBB-WS+c$v!H`AMD_M-H275jb!i;uxh z99SFTx;?`OD*cP=L$$#5qn7Wg$M_PPL96b;X!m=A3R}UR+dn@84)Su`AIN-55f&HA z9!+lh>f?pby(3AWR~p$Pg4DImz7xi)a~xC?7YBx$5ZJO;C}IUM-|wTkxwOvvfUjlM z_1U1fcrv4%A3-r$ITpO)r75;KM$_!3Qnq!PVP}_T_?ZvI8CYJN@}A{nFT44fM-DbP z-ku$Pc7o?N^#=a2ffN%K4(jDNh&ms67re58|ty?j>&!2T!L-YAQg7{Bdg-e;a9`6{+BYiw=| zSt~|Jk?rfMM_{J6f-w|sR)&SWzCXrp(9dmj)BY&DUD74H&{mpPOmG?eS&U``TlH@fhv1{K6Jx9jZh|f?w$Oz8D&{F zec5!*4$GzavT~HnyfZP+7lsx4iysB2bSgF8ns>J#Yz z0k$2R0HLEY{CP(y_LE)lBZ%yqXKMw%r^pxg3tdJVzCGP=`<3yw9=7EI+h-FP}F7FN+%dwmLR)J0XWLJTs{#eP>l9=z=*Cy2znf^YCPW&CUk#C;rSiiP)#MLDUumUe58N zTE$q{T;0?4e8wi|;wr1E@NVuN4y7iXSSFj_BbbRAym}bJ#HeS2Pwo=D&4GI_v%b{;s zl=KNYDJS~ZDvr{kd0$YXywp^x_{krdUsiRB7r+QM1~E6iu0)&~k;$l=swartOgGHB zS?_(N;AIa!{Q3R%W2hSI*sKI9Pd#A*|9A!;guW5SRR>;WxqbCoI409_ss1&3cA zN@8lW!K>zKDJPfdbs3=Vni}~v)FNNy><i3jWLHm z=XGWOkcJ)1TSS&q2u-eDHEVch7pwtHXK5wYG`nLiY7N~7TdEekAUG2iO^m)d?)<$& z@B#<;wriCoL1v418(QJR^0U?Bq^@75|4?!CT=O3Md52Ms|2o87vc%yA;+@v-JsQUK zmOumCOX`xI47Z-WljCS}Pzx>tUOl8^sM3R7F{7Sms~0r!J4f07z(^Ml&dOy%vc4<+ zX>Eu(pzK|Ib%MhTSN~n{TFn|!BnM(Za=PIT7bxM%T#%o>wW_=D@GQ|8LbaMu1WGs1 zlnMmcsfl(^)uP>RX6WVFP0(E7h)Frf{XYf@)EUoK7xV7l6d<<^U7h;=PLgY3#u@PL z`yXH}06nC}S>AXY8h;^F_*l(o340r2b#{V5vDb|UV!Ssia|COSVPy1U;U*D(L;Qnp~U{2q7(u6r%tVO!$uIGbyx zOX;f1LDv#vV0_|}_f6ismwt>~hGSL%5+@q?hVU<|=V>9(=cg|e+p;0xo zRuDFPAcOE!*Jr&U2K4bLAX`aOv7m~)mfARz{YbR8i>Hl_q768o*7mz=TpF4n{BqA+ zYI4!Sjilupv!%W0)HgJH*H*}Y7rZE&>a&z(BuyL@_u?Lct;cw*YUF{N$X)B-QLG9 zp1*1_T*FTeuLx3?)csyvs!FNJix_3dt;)!PB4RCV!NrDZ)qduACrX;W48$!oOd6Fs z{z2oIJ+yYp%S2Kp`6>OgVsxYH$%gdkaHSt5Pr{C-X&Oe~EHIHfbxk*RVwzwDgfaB7 z>M?zr(Gj6nTCGL}CJX`>*Ac410m9Br0C^~m$nM{j#|iv(Lns1Tr@*zD$FtX4ZtVWH z4=6SP%G9E$;rvesKW^G9+JX9k&#R)_w8TEuRs-!`Q27g57p_z9$Ka*A0K6(6z!%*+ zJV>Q>APS-r?*kl3yR;vu4Bh~2aoxaprDiSR-Sz=%Cmf2D%Ki3K){-M^t039*NiPRe z)QQ=R(1@dZA%xBlo^Ir}(fGDfBOsm$gvc^sB=F`99og^0o`Iig+Yp>E)0HDc7Sj3| z8JG_D>K0fwzVy{HdyFrVg*3vM#T!I1sIX#Xyv?`Q5eN7-bFuI>P;E?Jl_MTNvb5YJ zIkEMDf?mU;{5X<@=Vm8fzrD0Q0yMDz?}Ap~ol2^BiD=;8$RQ0~O%w`g5BGO1Kk%A} z&4GXpH6ZafMhG^~AGr81TB}@if5c!yy(1}FJG@a}K!H4SQ($%%IJNBsUKHWEc%F3& z=581eT^^csmBu`mi#Vp+@DP*}X9U-2IJaJ1n-?AG=7{z1+B{0wA9IC zya=E57aj8m_eo_hCf;JDokO3!Zb6G7xkLb^Vm*(ho<07~dsQ5?T%T}d-uFwzN?V8# zKCAT&Tj3NiY)F9=qglK@=x!N--4DX{wee4r#z?mpb@RcqUW(xxl6I_wkmgF4ET?Y^ z56G~anx}QO<7O)tRJ1JQcs%G`3WWEJiBjGQkY`?pz}PFfW&CZ!C{bVjf) z6CiwL?uAT&m;UrVaHx88<>UM>oq0p=jdRF!AC`S$AaneAPw~$z=8;m7j9>2yVbR&A za*Ba6Dq)NLf}$#Dl>^DSEU20dX5-xrnP+s0l~cN28|xg=y{V`?XG)H(6Ue3}FiT}J zmO`xKY>wnFDo!vQ707Am@Gp`5hFB*o`b^E0PiX@^X92w26D%sNp`R^V7LO2R8S(AW zqVVZ-U2&gZx}L5d7VBS9*Q_T74p&GzkmTrzL6(A41x~`t%_x$q{~~s{4{|BCl6flR zxAy_-Zd|E-b{(jo*dvA8hzgPDq7vI5^L`=`v{zO*EKdT}3h(6P*HMf|DfT@0JvOuP zUR#5BrsgweWCD;YeUnSb`w7x`aW_BaTUahz<6Ok*K);=Nb~AnZC-GaP0yd27EW6zX zu2J*?putfkE_f{O9H>7*Nd3F|6r{A|68(}sa$b+=S%OUl1`rpqPax#}o=WQk!pjj?Ixu-f# zzIL>qd2sI3)>-xzgfK_WlEf=k`3-C!RDS<-5>i0Kwmv^%iovL$^xAHQm1YRo}=kcu$>V z+sa5M9Z@q=I-meq8zG+c!+3pTba?feg9y)1%^BuF z*N7WZ$$J>7BGs=!`}i7FkNpRm2S}CC$cJAFvIn~cxENV?YNNHZ%*Mv9XKwq7J$ZY| zQD2;-$G*RX2dqc7tIbdmM)D<)ltU-oY!+VnlynFCKYjS(wlS{%xGk%1an51st-mpoD%!; zDcZb`Pe(PB+mH@1-=DaUNJw-?jEme&C2~Nz0-FNtWy5n%y_cqXq>NwWrxNSkdCc}iAZX?B_9e0Qb=^oLsK zDadjgpzM^;!^@t-B}2iBMPljWCpk@eT>JY;lCmj|JeSX5 z1)zy$MX{aq0s5?a#v3b>RNGV5ufspiSYO%astV4)Om>CUG@l~uIvtyF0~{%QJZV2- zm|=MBVTl2`8A)y!Q?n8EixHk!M@$}zR`b+lqX{l9trdAYjPOQwfPJ1G`}wiDbk$*U zyI{@(@XB7Fw5|%rHJa^P$$gbq*KlGR$$01g?jA$GG z65`VcVw8UPb#U8tIU*@t37Bcos^oy4?Q06Ap%q|&52Lbej<^<3Cw>+DO0dP`Q-G`KzaRl!|=OemNt#I(7(s&M zN-J(CdZ&1TokA}n$2M-fjNq9{sK zRDL7RD4<8T;C{#v$1hTJzh2xXm~#-VfLneh`cxOP=`Z);E7LtcmuJw~{PM8Rd}IQw zV`!u>(wS)8P@3=X5%ddgdJ8ob37+jmtTrA11DOw2*rfnFh||`&`-NptjyVpFOYLKJ zVVEvFP-ishkKpWGjy&N4{gdQR`WXxS+*3+qqb;ypaIU8OeU4@ML$r|;-hn$Ro9s0v zDVy_p1LDAvBt4^6ei)aw9$z|h;DQ0bsJ~Bx15~jQob);p7EMQIjmS5qzPIbBH|EEZ zBH5UA79W6nD5#v{Yf6nRFw@>_%j}->q_RJYT6kU*o`T2u<1-gOH1oUw@59FqapyGW zk4X6;Sb@?21VHd*vi{%Mp*~z3mtro!9dU`8M|lDS10-$D^C$Cmi^3TZO-?{)74}pH`AuE z0t`$o44#ssxz4_VlX`1S{gxo8bNX_MOf`Xl4qO;&_^uA_fm5eFPhZ!$(;em3Cz>h! z4dI72GM%rHkRs;4q~#vDyBY}IJL0E8=h~P-Tc4fe2(c248qOIZJ_M&o+;dYpXGdly zi;Wy1RbU22KZqh%kJd9f?t-2UZlh335b0Y07d?iTO(d80EY)zc{Qz_#lrO%n_!9b|^0D;DHf zraKW|06mnOl{;4~Bab-})-mBX)5EVgBo@a@+bC|u%a4UWPjOH_mQudfBuT7Wd3XSX zaJ3|3{&j-)5O`$>C!<@Q>h0+34t;U;z!a}7`dwC{lqADJUf){fsM%Z^HT;=J=xTI= zqx;>ZM_%K29t*PaQubm(Gz-SzZiqqyuT%t!PCdc^2_)xXPD|q#B)Sldad^mt zLjAr0t?gyh*Kg|uNGE-a$Ld)%Yx?Qdxil`|RNzWALz>4TUA>33H2Vg?QQt+b$Y9J< zdhNxp^W%FTD*4aEJ3%g%mL%%69-5xB#wA5Zh(9Y%A+dOka!JN+6h=nhI4bu}``4p< z+?dBy2f;fBN>ruVa^JsQDQPs%xEOD1J6aVdpD#;XAc_o=Q-kyG6Z-~48TDHrPNY5o z#}BJqux0NgbfkjQjR89VyvLL$$pfhbQ5c=_R!ifY7t^micaYs<_{odaeYp8DJ6X?t zITZPRepCW4sSlh}gqJHgoyu81xrlY32h({>@4A%9IYQ$2avXA-i)00qds8Y5aECYF zqjkB0<$itzT~@Fw27GvR>?ZC9x)Yt}tL`hCS*JKl#i z^b9DSuHV`qgz45TYR3FI-ZqUjgn^I)kjDlM9@f@4h53Y@+!a+vxbgv&CH4au=dQJ3 zZaSz0#Hxs+;q;+=uhsjW=2pooQ)#r3{D0=?DA#RJeYTyd8m;L;Skv__VBJ2 zhdGQ;eg|aF>vFIZT6N=uSfJ-1LS?N-^w-vih%HPZkplY|H`nm_dSvvB-FcJnq|$f0 zfJ_#YI5M|s>V%(e9p0vQoDO{$eK-0dPMX{>)8#h51)++jxz`QXPfjbxOYZYl>B_Og z@kW*{mH7mNsHu&K!&>0Lc^&58IUaS?j0iq+J38!l_w(Jo2DadfV%N28cB($kUVbUv zJybQgmpsv~p!^CHkj$$J9x82BN7JqVLWm?^ZOkkkzpMI zCxmY;jdk%86>pJ7U(63}?DYsS*wl$)q41J+Pk}Or{gM99^~eE-Xl1L#s;IX)?%J!} zN?ZW+&g97eF;Y$byV6E^WP#h14S9&+KOX$mjc|MB$u;vxm&$_jvb|jqq7>D3!vjw$ z=|(qev2R7f!--Smir%)=4aRfVyLXR%Ec%R~&iP7xES$CR9I8eT`jXlme9V6{#Nul? zRG0VlUnpaf@}6i5?m*2Ectr*Ff;;N24v`txHxWiD3MU{bqR zqa#u#(QZB4#GftcIz}e?eX6zJs8%Qlh)9HOBVe631$oSn_x)N)PW#S@s{p`mo}p(Q z0XJ%HU=@*wDiQ_3#ynXD{>1feB+AX7PPgA%Vj@N7$>{}QAZXlKnyCOu$=?0+RngVapR}#hqF2F#^bYB? zie7CZCi_m$BnKPV8 zt!g2w(C$I_BmZx%_E++WKHwI`tN4oetgrv)zl%-@FWI4vA`#So@xC{+B5ZhptObW( z#&;;F0N_^rs+dpCeOXrA2+sm`YgfPHEO)(s|GL>P zFEwbE6R;qX*_T%BxvH$9z%Q=;>tx8onpgaegY+AKT;D$A;B%gi5#Y}cFKHsbFTvHp z)1lzX$~BsABfZ=ptJqI0$m37nq&@$&hj0lj65?gtyWThBKu;E`<-df=uS*^}m)1qv zmwUt}#Ds8ZRF+HVC#MaSmE*7UvFU5{k6cSio(LLgzgU=^`Ab81zvW>$yB1XL;K{=r z)-`&xNbfQiMAsutQvO1ay0r?GNfiKA;kda)P6?S^;t3ff$k&E11A7<$$a7_Y|DMQ#_ zrgML8G`bo&u_ISqzpbtrnkNx=`syb$7UC*?DpWWY4eX9#!DQjk!$%c+MnB5Yw(Fa7 zaqkM6u6yY#WIhbmk1o*c^p4Vg^1R38N>BP~iMv8-SqpY|zC-Q@Hgl~esiUDqVJ98C zQZisX_~WryVejb^>RcR)9dnim_4LG;S|Wi5y zE>uw8Rsg)|%Lg+V|Hgk#$lN;tb;IxExGl#Pg>xZV;O@6pJ#NFMMg}}(C(F8fBF}*v zUWg(E#j0P#ICqyXReTLDzwxZX2YiIe^(;VY0L%;2?@d_&Ab1OsJa?lX!fs?0XZ(Xm z13fEGuO;7)F+}a@`ldN;q7FL+x0;12%p3!5$?V%N{G zSy!+mG_u1oh7@x91g9DgJx}{DyTt~zJCsk0Y*PUu4;K74Ky-n8S=cK3(&v{`W(5Wv zlv{Fjf9#Y~zc4Ye$-M@(hu+zx!Z)RhxSK(+(b_?GA;SeL%6-xidB_cPjE8fImC)TZw49TSYUpAaChU)CeHX*tz>;+>A3Rb)| z+w0pjB)N_Nu+xb9d%4)34z|HhI;9W5?VUUFFxq{F+2M{Uaxh(ta`_{~jRqv68}@-{tqB(Pmgj=@u!$KwVEB!Ju=cs_| zrNVlKr@5LInl4jbUf!l$fZM z&XcI;lsQM_&>|{&nV!bqGT&3|n=|H`x_2oWQ24vILRS!-4B5sl z;u{EZ)4Et4tkrMm&?0<(%CWn#JINJq6j7$es*+?l((@3{B5C){(*ZWld#cD1mPNp{ zOWAc+c{O~V9TJV2P(nGDGFhqml zIBz!#d`{M!leY~G&;)`FWu8uLkq&%(UrhD7zv1JeKN_bfM#P6TM+7C!$ zXIYiz(=r!$Qz0TIf#_C~Df*(;d-?ZI8GZpvXrM8Ihd=ws;i|{RR%x2VME>6-{RFZU z+W6(JETuouF&MFjXC}*z1J1#YJSTszw*7{pk|tyQ%d}LCcV$+yB0^%(b-XZh1!IQM zWL#Et;)_Hy%fo`%k>2=gj|QZ-PnEoD!#MUm8HKkL;=l%u|J}d}_Wb{413w@R9sWna z>gF9)Du}e__$;o$F^f;!r&L&zB(Wbn&Y{A&&Ju;k3sW&-!9Nwye#Cwy^3O_n43@=k zZ=~{Hmq)1KH&aZJi6!iZhs%Q2_t+c#C+3I=Dq}9>2x7AZFXWdHkZALeomcsSPHprO zpCM-VYF>AdzB6Qm$0EarqtJ8VmGgmxOHs z%Vz?{0yNCFK-txEDqMcN#!3YtHGjt2W}?I+h+VT4BR0=a+x|ijvvYIU&5+$;<;Hv@ zlMdyfg#=KCt?xkwSkJ=-9z8Pj?FrLa|HhUx-}pLHQ)FB9`;v)HRqSb<(Iy6_W~6q} z*b-MZRPwBYMyskoUVg0cFlk(Qe!_bxEzXqX-O`kvPaki`c^wJ0?|wC(F>3fim>h0(ync(aI_MD<{f*O4mUq%=CeE=rd1MIu zml3<;N8$}%R(Y2=+jxNspd?V$nDX+A?liYJEJ_O$`(#)9;r@`JfttFN4$AplZu`nR zZaPbdzGsXZ)Hd#|L+%Obgl=23=DNkQ8Lp{hMPN}@1R*u!bCRD&{6Dsw-U@$RuBQH9 z{_+O|*-NngPWZ4a_KSuP)jd(&rH+^HnYt}OEB*nST9!$~FqK8bwp_|_o#P~1IE@po zLzb(C^Mm7?>Z2!8PCiH=FnYwskKf9K8Cv#)fw;v1x0d1>K?0LJL;tP;xF79;2x3E# z0ZD75#~V*m!7cjX$?vLK``{wa+|eF$UMoWL;c7`7q;_iX}+%FIxIS}Q<7eg4&z8+I7AVI%7|v{_zc z5!i#sfy)?yhgII*C=V43+w~6gs=KR?I@Tu&PX4*`S_@{7;Jp;;Uhy!4kZWuShDf%yJvnuuP0uw z*}medqwLUsy(Mxsy9pB&Rw3F*T$vC4qLx!aQ2hz3B-*zd>z1wl4Y4_4^-VEc-^%0d z(EJJV;GO&LQJ}*8o>C)cHHZk}E!AP?V~|LiNN&rt9~GS#!NoGESTwVnvzv}Np2cG% zRIN7swiW*noUe>tiBq*aQyg{$63R`f(>ZXKtRAtfKEHqVyr4-t!SUk!wg%^Y2u_fi*%#-KX zw3-`VA7nhWZv`)WlcPsiC`Qzd%2MQV?}t(?ywP};ImI!Q0((2B+zb9xDQKQAGkk3b zzPrJNzOjAQonc?2YCbdgouWAL1uebs%@&P+&#t0jc=Ug1*xy)ou;f{1KA=E$_zLlF z9!y#*7)kJUD2|9}g>Q1;?b3XKz!hfP!yn?Wg&Ni^cP`g)69d2;7}E&6c~@cM+6gn? zDz?6nXh?g>C@ueaamv48>(JKzW?djqgRp(7lrg0YWFz*PImg~vZIJGqefey*ZI}YA z$#u!s>yN4Tk)9-aFta>KdZ3Spc4U#(Q2A(Im9>Jg8S&+8RKk53Q<@a-vRnFuc~n5S z!-04mb#TF_OL!AwSO(bFC)8L$jV>;+qtw@yU{3K-vPaMZpbLl7p~xi;T$4)6lB>$ za;(Y+xQTUPwXcV#hI747Qv+F*U?BPObi5VIQK#=;o;l|M&B!NQ;?%tLjax?R%-?Nn zTRbBvUTrTa;Zy2&cCLj!>OT` zj$JWR(_Q1z@t8+_9oOr7(!Q2#{r)NF?L0mkwT9_0dtb8ER>zP%Kfy-)P<21Y;E8dK zAjX}eQmh#6a>dw7QG?Rld#N}4bII19F=E$z@Tixjv))py%zoe;L4hyW6M5e)wNbF@ z7%Oc183}1;6TSQmW+NGOMjJ+B%V}%FvhQ`K@jGNi5l=0tZmlEpcU-az_w;Q|?T}A8yX|l^NA&BxJy=vpEeRl^ly4NlDL8sV)^$~)0L_u~4-bUUz<^Es4`U%5y zp6pDU8$r+wN?*KUkG_=pq!nb8CwL#VCS0;cd)Y%(T=%xQpd4;MuQW(Xt;2!*4NkIK z9oMw^5mLX|Sv?p)IWt#OAxZ^QN)}N(zNE9l1(kWnZ-V!8P)0QP$&Uo4vHf3Hv_z*J zFW8d8MPvLp{7i;FVKR#`D;UZJ*7^xKVM*Ymej1fGdz{s@&FPYST!-kJI(wQJA5{0d zrv48IwO~Emoc5Fi%>~DDQ@f z{Bv|atR;Ka&deuHm3WSL`*(O+GsmkA)LA1q{GRLcy=xQNpdTs{ zLTVT9%2m1BSZ`LXgs5aD*cnV78$C)&TZYWOD=-xCdp8iK(vlo_b86kUPRUmiw#sWI zUFe(JD!CL69iHB)`{l{yb_3MPc>E<=)UnS-(H8ZMks~!yBIx!dH{>f|2XLrV@uwd@w_sg%~BKKKpfs zaDOu<-a}Sm2)-~GQCgv_)6IGJnBEJ*&JCskD%yIdcFP>RS?GlNTwAlwSB$9>&gwH^ zYu@2hsLO82oHXa%q)Aa)Qshpeula&w_UP`N0)*6}^@u{e%quybnbcLQ>kVs^=E)PU zZL^jbMBt;Er7(mnDvz73Vrf99zfYj<#6j{F6p|Ohh>S7XJ2xPZG1HOX#a@Qm6YqxM zE3TFpnoKBu&oy4D#VG+V4+H`GR?c=@MMfq2rfoweG!&Y-T8ta!b5rK z5dGCKDfi*$`rkfcT$CB~JsPyy?)^&@)641SN)$zA?-eZe`<0vj_Mda8^b%N566Y$a z+iK*ojhz8QGO1=%08YqVR1$|(&2`=UbDHZi|N8juQ48aOjG4^XPK{=S)WibAXL{V` z`GAZ-D~GDD><%5H-ieHB5a|!ABAewQ3z{Mvk?+4ZdI%{wjE~S<} z@OXnD*8QefnZVGKM5G^#m@!audf5;%DEi4bFS@Kxhm5T_tPcOEP!NXx3NCR!@Lq+~f(Qd9 za5-C7L;1^ZvuLSm9!;JYSMbC1Vtab6_pF#~ZdYA4<4a{fE3qXbBpVBGY zx1W7OnUjby!^RmEg-q}Hzg@K|va`6CL2#V$B@};wf!b?ryK+14Jd`3*numJt``WP4 z47&W!?&1|zY7`*tSJ++jy)vu)M8|e-Y|@(<-ZubmNi$d)zNV#lt}zj{Dk~~HEgyNh zhzw;gLma9l5@ndyUT)!ci$)}w;kg9fvh2Iv&Ys3Y&_trYBA%--g322M0QhfG@ zo{H+$MwZiXb4jk1hKyr%mFY$gxAc!4N1yX@Y&u_ zf5hzK7J#0X?j#623sh;LalhA4;nLR$f3!O=Y@x-SE@5jWS>Z!7r$LPCi_F$`Wp9h-D(<32 zQ95#nsc;VFV<;5)v~C&VN=-?BUV7{xh}HdDjs>kewh~CAepF8JRB|;_51caF#7Q29 zB+{h%^>*AwE zR`mf4NzlyjLBLs8;q|F#6TGG(#1_eW8BB)?mxX8^uf zE+erwH_SMa5PC1^dDvoW-OIEzvTYd`Th4wbu&Yy!7g=(prCv7>m*|G?*%vB|`tdJf z(JfYA9UZt%LN6eQZG(LFVZe&4hU^5XP?hWs)r3WB1MzFNi6&EW%<%SO64=k>M#HSF zKkva?2L1sbp8_9BDjc{$oa_-kNGRiz=R?0AF~PCeUM(4;qWI;FCsg=$aD*p6Ef2Ul z#oIG;Tl=i~on}v*lO^=|%2yhV8^5`0oF7BL+SgrVmR-Bx8YT>SCU@nZDTg5%wx`bq zsHF2zd?G_-+yu%Ln zVMkh}v0b@KaBH|k4;>LliFv)E(Bww+nIyd6uVe7A8=>sh0kQrXahb#lQu?&D*QY&LA!GQMYba&O0!40j;7l-`eYb=W)~56t!*^0 zp_G8iaj3C+wawU&hlS+0S?pI{n#119XJbbL`T4(>+t>miQ*)VPBQI83>19I|fu51# z<8t@Xe3upe*t@2sn#}i4t&M{*v^3rfTxK1k^%Vr|9V18f6#7Fye`M@2YqSAhZFGf0 zNSB`UIUQ9|UTq$I%I{dUmqb$dG1Mu3zl3Xe_2lSRnM?1g+CPlFm%WhK=A)RW|66(9 zcO|rO;$oOL1Mg^UYlg#}&J_F1UlK$*CZQESqo3omb9;6fnyQAr6;+}{=AacPzW94s zqs{Z?Qx#9OR|6 z!WpamSaeqyu`Lw}E6(>3nFwpHyjB(Z=nsz*ql!%5s%leAl0(tOp~}|=B1;e&kVN|m zj)i$ls=0qKUL6>%jvD*<7VlO(;ThSkpf9R7&IgyC`mhtr=~7f9uo>BeX||GyOZ2{e zX$8CF$;x94O+2fCVcC&{5wp{&EAt|?ik|R>%YG{1 zVQURodhh@*ytTRK=1g~Wy1&-}e~x|u+?Ut^PsKigU*Fbc(0$N$?<8=q(#s$deEtA8 zdcSppEm#sejJ=rnj$1C7GYQbI9O;3;!$S*3E`qBLELk-g88n}%JpkZnq1l(kzemR7B!?)e}BpY=&4j`0wtR(sNE1 z6BKl(!1aZxgzqNY&~tvP(qBQc@pnJ4DjP-=jbfq}@)yWNCwQ zUvC8Vvvgi$Su$pA=jKgBvFFtj{5;l&*b|+je+^AR)OSuPj@@?sntpM1P>1^NkH&G zK)QFjliqaPXEirau1%+WBj?<)tx$X+ovm!Z;myC7jEHUd<1gEHY)NPVKtbIZ>CNw&E|r1XH}(4?#V#4; zP)T6Fm!H$P(=B`8B-wG8e?$)VgXk~EMo+K9hV+smX@uvtc{Cuw~Ss_VLmUoRcl| z(tjXVwS(48_KCbuI;BqK$eHI4yy;G&^A>=xSIm#|~{6Pb=kzTlB4Rs>omBm!L;Z!Pz%JjnTV`iM9GXSTRK%-|A zFoDaer#@eUos&-=Zenvc%F7A2myYv0JqVY3c{(v?v183ef(%Aa+&sXU#;fsI_^pqb zjc1+JPgtYR5Tz5txfjzR)F=^lhhC{unjzfYPO-l*Ohm)hx}Yd_B<{pMbQN^`*Aj{F zMdcpbgBYq3yzsF65I*fsz}H~iRl@|u3=q-t>qu9`Ck!ISQ^hPesw zX{zP4byj)pPg}TUK+h-TRwmW~!FDgK!b31o;pT*PW$xS?7T@2u&J4o+h1hXEZtcEx zR1#c_WEd*w^71!p^acP(X@H)Ca6KLA@nLkFTq^SwP!KT;GB8>@^fe1e;yb2Ci>%hr z0GJ6%mqY$+9XU^c{%4!aTaP?`HbyYTfY5 z%jpDOV3@@Ow9~FX3bQfpJq#3hG_Y$KA7yhl4dL-&xh`s~;d^n8fe#2CUSmI>6pSy` zfZn0X;{yaU=((ltS~Wbg_IO}_!yD$Vr;hl$kJLfYGD(@!@d-2d{N?e$On4ypoTiM) zAd9Wxqose2X=&rth1g162kI}f*=v|iWhGxt{2`JTN;&mX=N?{o{oX*>j&DZV`NU|! z%L~~6Xm`I$28^U<(+Quq8R7B~*WmQE(=HLtw&)9eClX(9SC-^>lD=?390moQ?Zn0w z6#R_?rZIEH3Us`l3XvjjSAFtp%E)q~I*^+f2jBH#jPTw$Y!*zC9zv&aK72b;^8?{l z$`w#8uBFiwG{sJ&y&iE0rZLE-@Q)vUvhvR{!cNdw{`t*6yKmdkwEG#wcwT^S&y+8)k zcE#V%8QUzW(zXW)?tL$gok}2KuGfPWm$3l1{dU@pOm*MBLE=A|?+4>X+nv@5{rqH_@ zHJFbktoRic{R}dSi7IGGUolFa^AZ`diO$u$HSFw3&FdpOVc(7-Y*t-?SoC%&gkQ;4 zYHs{J9OWdy&tV+I#Poyyz~Wj9V-2dJy%A8J& zH+pjr^2jXq`88}mb|tI#3K>3D9u{dOW5=W}Pu$FRf@~{-nuZ(7t&!V&eQK^sxBO8u z;kcbTGrk+HGYxIJ}b_(QkPw!AcjnG%keEBTSu<+fr;p7;pGQ? zDwy)?Qgwny%plF6fo(1c!@Gw~^q-`jP^x^kEoMxqsflQyXg_ymjpCHM-YM#+dXiWV zsNE;WlqBLBDm~^b$D!bHCw31LHwLw<5!AV;zsO-4W~T(n3I`Yi{?f=4V!Bn;;K zf(w@~D3}PsOf5SUJeeh;ac{jJlr`*tm9~(r7{`0Jp+(i(M6IM1FDVPVNi~D zkqccHMe?f< zQ8ixQ+KA=oj+Lj4yK{w`q-#w3h~UKbKbknH?vnt3km8^6PmJGlar)6W+fNg;od*|k zasE0~zSbYvpwa0~NSASyp1wLFbsyDdbdv+LX>`edFpgJKB8c#UipK7>UfKSo_`y^9 zwsG{)l&RvQ@-I<$o;lP=MFKDZzySIWT~NO0Lc*ZUHA?gX>0BHZwX1P`P7?4Vdu%- z!p~g~HFm^Z#(qm##4*Kk?s?M7t%n7r7Eg(Cl+G`kiYezk#5C^cY7z1xe?850+0Ut9*5O-*{a5b&=KyksVVaDGFtz4V8bdc%g9 z8&?v3lV0X46^0hGZP(!!vyXZkAb;e^al6F|MaY(xJ*pz)2B%Y|kfZkow=1Bj89SkzM|NLiH*x03K>`&Z zJ+*Ch4cHQ&?XMO}BlbTGt~FNt9q?n2zQkE>8PH#ZZGHkgnC3wJeO_5@nV>zocLe5f zzZ+q_1;&wloav;J%ewsVbkf)*S^#niF~zOX2awH+?0VlHxL&H8KAsgdBH7Z)10H(W zJN2icE-|~E1PF>}=QBDC&hcV0a2A5x@7=rMo**wLw{&$qKmu;Z-JS@WTC}$tN0Nrz zVFlG)MtF6v5RL5BcQ2f!?{9cz33Ip5?fc|H~6FKBX%y1O)r$vs))$>3}|{x z=G}fszgzZ#vpNOrGm2Hk2q6J$wimVQ_^EU~GE6ugaLD``yqyfh&EoEwgk2){j{n2P zh{#yIAo#^j9H3&gm!Z!l%AJFasBH~hYH6q*c;fHHU}Lf6GBoeQKgh6R!zkI$t~I1@;9Cp zJfZkB8vx8Pd2=B5@!Pn4%g}donbh?l+ds?gJu67V7jueZXDH3$DmRJwt8ZEEg^bjR zs<&1@7XbI_=P5V!0^r1GeU03Bw2M7m$#W9`Y-cw^zvpHPG8PYew%zMD^Nj$cz9^S= z5}%Lc(P5>jYk}^zq`zg@QW#_*mmI z{_0q>=&%;}^%>Ix9{9gh*h^q7qzy zruR;v;rxElQvv|BOCuFzdk>QStJJ)SvNge&`n$5U{CHJqUuQ0OA_RF3lsPouCeFVa zclbO|sjGFVNOKc5UAB2U3U^LYqt-!DvCfJ*rTA`OBNhT20Z2Wr{Z+a~G=C5vCaz#l z1N_0(2S6q`y4uE)TL?fDRoE}paG+EJ7BkB3&{<3|#iQVlrCFFQBxo~Cf_Ja;vrPde z%oB9TYU$?7>6Hhd!9RCGqMRn8J9xlwbGQhA63DAIQGel-fN>qtR1NS0JTUS`SJEvE z(-2c(G(M;L(GEf2m5`@T?&l#?TCq@FR~#s|A?GwO(bQ`0pi*CY#{#gef0;8NC;-;m zb}u~iUY_@9*CrM3j~b9AX-)u+BCqL4k@fuo^MTt-5h)cjukpmx8>b05Ue6wmlLVm5 z=vNQiGsAsP^s!u!TWdrM|6~Zhr@ApYro%MAoQT}m-pne+Ppk_LJ5R~*U!X4)1?ly) zY(`m>CA8a3-Jxn=!=4zHVao_)yk(bj6Fgw-U*%aqx}t_l>5__vBg!cfacTg?(++$1L+B<~6)U=q6$m34q+Nsk7^1~`5}Z}C){ ziqGzLQ}?$9jJJcIz$)cJkvMs=I7M z9Z}8jL68A)JAKjh7hJR0Yb?%jqF!67P39iC*Mk1K0M5!OLZgr1W$S>8a}4f1$b4T} z|5a=TWAWg+@Ki^I>}gPx1E{PUF3|;7H|ScXoK!8aVkFa1a@=%mw<@ps*Z$pk?{zAE zp0=4h;!GYPB*}C%=-T8ghMa{d@5hS2j8%VI?s~@$PRwl$EISH11#Vp$2pus55qoi6 zhQ$3{ZGX=r5qj`ThBI#W@c{FphRtB+KnKr#=lbNiJ~Mpl*3VtHIw5#9|@L7B37 z3!L`THZsFZsr0Y0hKMC@S4Aeht9_pNSenm)D@PhoC$1g)`2CHM|K;WGr>wmPUK;rb z_}Mmq{Bos{qC3U_5I@@)e|+&IK}XLJzUULwr2%t7_bA)l~Nam5YR@+{foj!2NWjuBXK_wG^DkF0xH;D2gr= z)?SVBbg`kr)aReVI``V-x!;}+F$|U=+Unjq>l{5fTv7<=M|TlA#eb!MS$QJ$Mm9+T zCBZy}g%>^G(BL^TLU89;!Ki8Wng1nn(HARae*J3#1*Q z_@e8y@_aqf5oc9Opl9-f(^E*RZe@^NqSN8?*MeluswjsBw`ylNY9AHlRIr7{PU{&>z!^kc?K+FRxNG zt}dM8kwCqdwM18GhujvBi1DEf>LieCb_N~LDiCgD*ERTR?LObj?}m{_G{!q`O(8L& zmga;KFOz2hNuPx1Gq*yRUtFFJKBM@0bx42T@t^tomNj~dE3|>*BI+aJTy>1${)*am zcwfazE4mD#MHfZygVo93>}0$We0*a`EwJqsd%1X+(;fOf-GvTk{7waSCgNK~UkB&V zUf%}&7b9~7(Gs7Dh9_j__9vM zrd?)LfKIpsbA^0?1|lsCL$Wc~-2v>X#K^jw1WAyNzotaG0AOGvefK2n+G2lY%U5+> zk52@cty||wY!46!8~7Q{NC)qxH%Kn>fkXst!P8X`{Ct4p_YnWLQK_VEMvvM1P*6~v z35YU2ehx5vd}a#9#?T|(lL5u?^4XU8?irzOpxo&7k%>=lh`7cxsts~~kWb0+pB{=r z5Njk;$t5>OS}HdmR}IBnb_t;HN4YYjM!?Dgj~6pYE$F!wVKh~1CY;AMO8U)Fg2g~wh{j8QI43X9d?c)rQ?fHX ze|3l|t<+FF3b2TVRPwTuc1FKu)w}61Aau^ZQ_x#JZV;aBAN##ZeQEn@QN70xjX$;eAjaIa#9jMCjzNhD+JERY*a!8HPLVpY*#M zf5H8ozMQk`0ITuBeJJ+qR`ahw3ZwzBg5EXPf+{zQ??Vbze$S9eyki}f$K7oqM{Pcu zeI41(a4IKtVC2^E2F+=HQ{tqu7^GnpZ$6ESrAMb2c4>N{5ba&j6)+b8^x{K;;^3g7 zjAGlyova4AMq3Il#Phr6__kcDMn&kv;?{5Yh=tw030*me@wZljx&~z0omR@0b_3?x zJ}+QiO(@n)3YKP0BhH8=jPC|SsW)6Qe^i&+amrXUjJTV!()NB0Gc6KPCTj~#&OMbt zJgzU9xF=%ZmoQK%W54a|J~x(M>eiKqqg|%E%es))@>((G>ahrK;cV{}%$6xx=KP@6E*Vh9llOIPWXlTOyC9({ekzCJCYZ$GxU`L5tR$8rk|x#sF6TE7OHVAyF&3Q> ze=n=Myk_%_puO!o_Wn=cD**0{%|;u}3GuV^P1WO!zJH+6^|F%YTUD&+VkJJaqx`96=Tur@??u z-u-8TVn1iIpUz+erRO*qi8o?XgFI^276%~?m>tQt-{p&#NnxX>ju2$ zZphkm=r{ZdvfiKx?MQ%N$JiMCDxks_Uur1<&7QxKDYMTDF|E392ks+mlF)X2hecs? zLzLu8M5E<>t%j9f>hK`?iYibFJ&Rmc0q0$tZtj{-WU;-}d5*tE`Ys$w!_5)FG*Hlz z;(%j^IMk1}M;ztSK9{?sKQsqC`Oibb-?f;X$UVqQ79IU=XTu;++S@;i<>Z2zK6$$0 z7h8p=rv->Td7~hlE>EvD&cdcc35YO0IRVfH@OClvb<^xNeJm0?cU{geQNL_HPI`hY%ND=J~9mQa=bfjUnMk_E5Fp+!JELz^`tlOY`;f=uhF1E`BWXbV)6%`2mr`A>O6KWY0&JQe4^}Yt z!V<8#UfE+@H%|}C+}&`*J?VyX3vadnRf=ygwd#=iME+9mnhq2ESpNwdZ(mT%oj7ow z`#hQsFkPnwrt5k~g2CBYV-p%C%Op(5*aZLE8y9!n!k#}t5O+Y???jyZlAlJ5m9kDH zaAk{hvZ@E1FJWp{QqVVW!aW&;w;VN4+g9p^p#Yr!d5-fWR0|s-@CtR5RFI zeh2}Cdioj{o)cgo&}!)y_?EYh4RjLia6+RRnHt1)43&6 zypMwmJ_23HAS3F>77dpYjwu7etnT;ZvnSEt0FgzG^@mv$;m;6xm~G1v-7Cxk6%084 z>KhQF9=X>#sr9fMkXY0z{aDz6&QbGc$N#8+F+1}GkxPZA2U0AospFH1D88-?_={)V zssShr@;G?m{2eVILe>l-4%Bb$bSd_|dp^5ZXoVDt|B5w<>E`LR`@8aRG%&6%+O)9- zr&-XG5S)^SN7rJMz}$i^$hD~s<^^w220hX<1RXWd)Vw;IJ66~~6xwfo6J&+pcc7_7 zPQc-pwl07!qgz8V!SBOWC33Rww_RG2J&GY&cygf_fWPVCEg;;&5$vGP!5l>t!EAW* zjwN2bbP)GG@xw}C3Mj05L5=eApp5u+#06z`xMuEj?h48b6gnoc#{jtpVLwxf zn-2AKINihf5o55*S<|@DVdFMaOgKKz3Rj@IdHRW&oMht!M}%x#Srnj9>*Dq%i;&L& zccZOC2=p;0t51>pZ=gOsbN0~5{z5O-fkr7=FT&`X=^^{w(DdnCGUfj;y0+udj3R;^`tLP0J}q@A_YIb;pQ-3A%PyRAdn{YxDi>O#jC#`p5D)VDP`-NNsoAv+d;uMnD~@ zfS)=LYIv!_No({y4=J#fNY@*dc;&8?U47vgnOh(Q`YvY;r8qR`qxPDEj)15@9tTXR z!^Sag-1j*SA+x3aTcD%Q@24+rh+{`e)uqoVn#KY80&F{|T`nGkw>LAz6=%BPwgdTq`YMlrDg>^TjC@0*iq1Y~ONa1}~` zS2iKhCaXk%Q~57Vop$9!(ty?>AS{HL|5R{#%uyJ@&qq!LsWn5$=ksvjw=!UcK%eXP zTc0&+>9~|mxRjIyUgsAW%Q_sVqI)p01D^=Hl^q1=aKRR}EIU}_RM=OrRjM*>O;vI& zN_EpR9#0l`aPUYE=EIsRAZ~a%@PkA6*H{)E(5F5Bx|mEdVdwJiZ!AEcntZY^0kQ-r zsG78Bijk{Z%!q9li3Y^OY&9A%-e=>NJt^)EYbyQtoHr@jd2&i`zVQ8{sumM|(IEcY zAWlknI~6;(>G5t~Ho48|*bW%Zyu}P}Ssd|&UzfeG=Lcp%z$XG_N0HQ^ zLO`B>#cr|lRKpT)$I%9eS7Y=JwAN6~XAlhxgWA*M2Z$4>AdC;a`VHx5Wne{Qqv6R? z1)xf>5i2-$@_ZW*>E-1QRqeWC;Mg6vsK}-p_E{6C^@fWR@X+T^j0fEGF8_srI2G3I zQ@oBzz-0H`1-6UKu?9v2>I2cg;I2m$UI|XCNl9PHE8r>bA#|z^>Rii^)Srz=yySbwH-AMob^b-F(qwPYu`lGwsdi6; zD}u8|nYU+KAsIuq6dN-Z3w!YhM4n z_w48H8#O#aE}n_s1pK_8MRytfu@mK5h93IB z7VF|kLe!cnY#_Vfz9b1|&k~sCiXJf2x4t$M=|krkFz;Jjw?t`s>A9uz_N6{;_g?FZ zI3R;I6Qf*er2d%<4y}ECqf_dc?@RI!KP0c>#3kh{seBjX(K$%5;{TM|$>ap>q!M_gD45wlSMaXJemaKUf%IYAj_pUM<)IFHV#CnS}$Hk0|0P zxhsAC)z$=PS>rjkp4ykiVCLkFTbYWj#NMt($i{;nH$LLIlOTNFrz)G=;JS5yRFdZc zqS!*NbJtKDnm$+Y(+I}6qhs$Rlz1Hi>4;yfU9`asWhf!*YLxc8WH=Uvo|f@ z-1zf!P_BFP%VKsZ;iSmMR(*w(=!aFn(*dOX#y%eVO_9VwpFd(*8l#@0w4WRDHGbp3m}} zjIy!YthT0I%Aij*e1+K3KyMdqyxW}NJ!teRHe0TJSo!zKa%xYGU=;(rK z{{@pS?-eQ0PK^QtHAk*QgzVsRsF9#|UG}p38=DY9FkgyPzWMN8;qQe+_aEUhFy<8c zR}{biaSR8vkX@(XNA21bmJIx?tom!Uw>ucK9sksSgRB|I0KOEN&^;9uW zYMkA6)bp6n|3lfE$3ywP@52en5@juGrAYSd8MLcxS;|h5WZxNkwj>ReeJ`?SDLZ3l zgphS?Glt1J7-L_;?;5K2`}_HPpWpL5e|go5`@ZgLIhW%+&f}^Y5tx-dU{ni#H0bvJ zlKagzG>{AQ%Egpv-*{v@Ic(?c$8oLG)6@T+0z3nG|I)1fny-K`h+x2fj+JX(}~%}gce^&(iq0hDftUnuUhVVBX&95%%9h~E%r zh+BFCzYhKisqKmtrLYl>-VF$eI1aDLiIAo&SXc``sO{t*hH9@^&jYlwMsLC*u@KmB zPCp)#m~`MdK{x{jM09e841o~Rf>DI&-jx!w>H%^&t4ki{&#H+i*PI`iPF1BXylXlp-PDr~`1;@N;2?e>ZVn0~asUpPc$vBg zlL<#({=7);lPLZIRIYMuei5)H$n}7d@zmm81FYfZ(=^}FqMDTQWZ&z@ZJyBSkGSbk zf%hGj!K7k+Yuy912d&zau;GhgLn$o89s1+99)|=4?o3=iL|6e}#)gx_fdG zEAfZ%2eG-(Ph0mO#qS5bHJ8tTFO;~q=wvHZJO-EZv~$N8utUL>pS33p_Y-$K%tt-u zGdDy}?l|}!5Y=9jssV{QqMDA8$gCg{AOAzY?>nD8AJpl>+Vko?&3p=#Vyzq+6!3(k*UY*AhG$6-3ed|)HenHW|D$P5hEj? zZ&VVX`CX#kV$pi{$4Z~HL&c)=D3m;*RNm$oyK}A)hXzozkw{JjSb#OWenqjc4rtmm z+Oa;P%|z6rp$2I1rNyh3a8^?>jAyaDkDJBP zB0Vh}X9usnIKQWO<1~~UU*P?GkX3{nwNxB3Y^G2XtS^+}qycXEcoIx37P;O(o<^IQ zv<*WFUpxqYWFp5>DIZP;QGt&Af1}ZsEYl9JS?RDeyy|^`%siGrQ4o1V2n~8psKDaL zIYhoGiDT}><)5X6>ph42;{`SABR%xnUs*kE;v*0xZ63Ih11zNvs5)>$*T@U!_g@j? z|G)dGqd=3^67n4w^*)z1p!{=po6LwWKd|=B?-xcMI3=)lPQqS(lb9;e=Sa zfvODe1YUDps0=u%4)39+mPDGYcA_iGL|twcAvW6@$eb9MV8cHUGh^{X67?;W-V&#~ zu;5wrkfNa?%-mq<7$$0>%^!bK5dZ{m<*QG5%Qv3q70NIGrep?d!Q;k(7n6h3!c^+~ zIyV5uF1^$wku3YfKZQga^3DcqN|wX$w@+L@*Z~ZGU7f}Sz%XCT8Yv4HwTC5bh#Xps zSr1dIbw(rHzbC&2JTu%|DDEMCt2oe7*%Rc5_LvYWNaLOekS6(BvmXNHg#0iEk$?%u zXCN9kQ~CP993XsS1cBPhWOo~F*i}miG;TG3m-W4FO)e-<7p{MFu&U!?sXDEi)%7+l zg_Vv1wErh;xYh#|nou+yz{P&Iab{Vh&I$lcgZS3ed?1xj{^RGUfIji`Bu1=m#Mwa8 z%a_M0PW+y8KR^hDkGa}Wj(P_-`)RiWyW*B-we?s^QCPX)T%`a<9~5w`jGPSt?dh@& zoO0S~^NhV&TmOBS;>^*50PR)$lz7aJZPR7YweaSZ;rc0xDuFEAYj%k!L8G7p$%BM3 zSQH0#*{>6>goo zHa=8FJRK3=o}uHk7X|4IT_3dhDYTXBcQILy8Pl)t*_9}J?nypY*yA?Y*e!ANE*!Wx zTYKB5xPzzY40Qas_p)tSo_FTt!Xp2?ERpy^s16jC?V$GoRZ(ISK7EM+nv;^vGmn1# z-tn7@R-N}=jd@7Dx}1;UJrleDBZ}9=rhQCJOt6pS`&`}wk~){+I5)%^dorau?)Rp+ zTE@EoI$Syybd%2%E%ke_qPY$?Hw(wvaS1cO|2j1dI+>225%p+dv+~}fRNr(;g99i#hV4Ug~LM)b( zwCerR1ii-#;`5cvv0!Pb*o=X)o(z+x?(q|c_=Y+K#9$dD@-0f7(y;s&hT1^p<@@6x z#mtHC!g(9i}qI!$tF!WWY&S~CRO5T+|R`Bk~e2e<1i^~YK z^P4FAn%;y!%mK3&m;arpDHrx=Wfh^%43!lupX_u}y}{^cJRb?_{AeLiQS@$=;Ztv) zT!=ae99H3ClZ25-He!A4K@Z3!+riy8vzr8prl>}4PbdCF#`~q7=OKIr3$;p(2NgpUa2(+SvMd{AxxjV~^>-hegGuxCTm8D><#zHG)7#O~b$~N|Mt_>~R1~(vQpF3Po{rVcxk| zEl=4emu5N26p)Ts71?ACUYA;%*X36Z4fa~oR|O4~sV{gl?z-!1l=GF9)(~cJr|~(c z1&~eQdix#12rU@^h4%rvjq%AJ^s@E4H$eV-?=@}_a5X<6({SXLkZvNSokgM%mrv!{ zjhXXqDc>r!DhJBc7@vD7s3N>0+ zn(6Szx)nqa3T$yS*fj~PwG_hdIv@rKmB+!xx#xf~%p=4Km+fc{;r5YlFP$K2)#$I$ zVnw-)`uqw+NE&nnfJdcg3G_B2uj>ZeUFw9IxREa*y z0Au*|$gPWJ07tBaho?>BJ7n$P*^|o#l@c(+NO}sR8iG%>{bJ0Sd*|C+y&Va6 zV8Uafjww!fS8e=M)ndYiPWQQe9nQ-m^$OaBq#En{C6~wdFU;@gHyH7G?up)o8aIT~ z4HTl@?^U5M&fff)=GA?j%eWLN-<}WoC30Ml5JrwxrM9hDNsK7$9Tk|RAf`tP(I;#0 zs(X2EAkJF9H#le~sCnAa7}N;QB?P9tRjM&^F^YH~|M627W?$zSR^|S2&Aj4X4c1*$ z%W6E?1pn_nr9$Mo2PPnQH&{m9GT5c=e4bZaUzu{@+PO-U;;_@6i2{eLwE5Gj7gCk82sw6e6VKjHD{JsFPaEGR2GR5)2WXT8sjQ^& zQ%|S;-mhg&1N~RWp?;*{+Sm^16yZw!0k5PHiko{gkM1+Uh2{=ePvAL>wKlmM>Q+s@C`bYxt4CW4Mr!R?%3_|DN`#YDC58 z8Te;1yDOQ5>Y0JgaZKg@?)&NfMBJGJG$P15X;*XeMBvn+={q||Kj^Y;2Y)FM%r9W6 zowp#p{{8Wm$&-bzFB4+CZAC`H)0Pq_Z6c&wA>ztd;Fuy9k%m#Q7B90@wv}RP38UMv zvUx6PRgSvQyRR-JE}z+`G*47}rd0U_$)wutWU%^&k`z;y-|K|kEqPo@b{qACW!qVlBKvaQ=fZ76-{K|)xWTSG`bExW@}v=nfzm_))T4oG**9ltPR zbmif_1s}u z2CM}xW?CHd{JI*&JQWeNck4yg z@s|NVym&|NNAK_8^p@e#D%BJ~8vH4T^=L5^&Gr1q#R~%sWe!+T-$VnkdGhfOfzjU* zljX&gHL*Z^MNfH`*IZ&JmVfsKEOQW=K+(Gj)rpdMwa|Grg^3&_ty0roSMXjQcZGG3 zki)%y@Qz>@vV7_!3v}SY=SxfZJv(Ipa`z3h&SbZ^S#vj{&~?S`a|3p1aKwQmdU$L>s`#z&8ZgL-+h7Ny0}9j*N!aZ|lxz<>*uKMD3QSh6BQY{mytAL}NG>oDFS zC_|?!;Iq_!Dst#^VP_4GlYuq19zXG~uLbw#$~{v69q9s_M*$)Vs-vB){kQi|CB7-A z?R2c*#T5arlO4P?>70XF$HmK_qx37GG<*sZb)Kw<1$D!)C6ln8rvEQ#M;FSR5<4Gl zKj0}wD}l!lnR}7J?YB`{VsrJux2U(x`nr44726)|$9TE(1M=$7sAl!~>hx3dTuP0D z3NfJWbzu@?%x`vesrI4u{usDv*z{5_dWU`;@^%Re+T`UUm%BaO;y`F^l5$$%af+?; z6Tuc|?PQ*rK{G$3|KEH&CQ!IaklrT}ur9L`i|!8!pR=ui2hdB>41EZ8V1a7{K2{FC znS~RQ(NA{zmehDo`pid?zsET<$%wU!OQjw(ho+f{QB}}4fGUy%I-;Kg{MuDeykKEl zIpkIWv72f!x?Zc6;v*8tPqDXqNQl$@c}vy->0kj#s|DTm&wn?kqzctrWX2#u&Au)@ z-6V_+2@=cyz@J;ef$E6kG_HmHY7;=qGCL5SrQNfyegw=Ga9KiH5$%aQwOPjvOLfNQ>Un;nf8AwuxhGBUc@U2!v@@0qjW=yVDRGUTUNIX(Pr zX{X@g!u(74PRLtX4{7X($Funs@P1nOebB3Wg-YSZ4Hu9fW4*shP0n-|%ryvYe#Xfh z2x#IxXs7=X(2T(p_bOq5`lW-!FT!zEkn4bwHqvuvJ~ZQltoLQYg~6tK+mq`j59rrK zK1buzm{gQu9i+``GFif$l|3ZG9 z#p3+l93vPfJQLwZ87}(vO`Q_Y%}Y$p2SjduaibMi{280qRR9pO$DUbN#DD=ZC`&v1 z_wzFIHn2dIAW{NNU(JQr`w|#tj|B9`U9|?kT5XV)KV`$$1Xj~s03ni{TW0Ce#fTzJ z=$HHSviBwu+gUi4@6`Yb!qT3C=k$30o%eF1wL2qYKMNULc^3vb&8@LVBugDGn0~!R zf1Unpq|=c|b>>$E*JwAZRX^lEDqCHw2yU#;%BeEzvd^aN0Ts_FnY{?!r|z!wP&)he zq@Ri4Zcg-$2G9WGtziaf^-dxKeMw?$;bNqeku*LqI0W-XxcXHZ0O70rD0!)Y*rf;9 zJa;SrIj{oLnWdPor+AJRY#&iw>}2jyZK+f7ga&M#Au<8xhLYSCvL54~#)xX%St|@9 z4Y$IoynKYYbCUH2ESRmJ=TbxCEqesL`~UKE$g@k@{yS-$Qb@V1$tJMhrxs3x8Q%Y< zVbQl=_#KmvD*+v{MTK!xtws*KDk>|8s_Ly9OUFb4B_Ck@5MnLpI@4SB84pw@QX3}{ z834snB3b@l!#`#TuYnyIRxDGP!&ppmNSO> zUH(r8jDrm%LyY6a$o1#s5}eQB&T*=o1MwX{*$kX@5}o{s?dQF`BI8eq0@rH(y`9%! zEvujCFhbcaa#eJbi606l$rjw8<79!QkfEVEbtE-Rs$2{|Xy-Ogd-5BvJ%(Tle^+;Y zl=cRH7NJuTZRy3%dDdTS$dPP1@q_d<88K1KRD0aeN)%#ECd*9v0!p<^Zs`s+p0_XY zKFr@Mp1B6tI5NSz?ya470vJxRIu1g%doMesK8uk+KO7m<`j#wUHvZ)SX-f?k1t%VX z8}Yd3hMZ>vL@hSEt4klWx*ADuEq!v((hrqG$nak3l(|j>cxM@6?Y|ObYI*A|%s&I^ ztfAxV5()M#S`7(&Ub5yl)!k|kJFY&Bislxs@psPwL6}g|u2-;)A2N1hbOW^g2IZsz z&4B7lu!THJjrC8s@%*TSQ7(bU%dKbfG~_CoT6{}K$4`K4J^Al7(z0R^C=*8WF*3)O zhZQ_ywDhfE7>{wsg^0Jq?Vd?B8SbzDOpdE7i5}}HDBzvV?CC6Gr2h5HeWRjxa4b)A zP~mgLpn^6pqwHSH3)6iD`&GO|P?&*Uuo3$78A8Dwx*q#!84+d?Y@#gR)t@JJsDseX zG~6j;+oL6hmHOW1P#2nPawFk1WQM6@gc_Cn+*dOGoKno$t=r-MOV&AqWC zo%$1WC+ZoPp~-!pmmM{Qh-tSsz$2J}tnKQBEF2Bc-KdgOsEv^Hj%!d0rHyo5hHbRJ zhdo+yZg}C87s`fz>Fp?5s+kovZtGR8Jo54Ku)Kq zm+&8Zt+F!<0De}@llNAra}G8yI+gMD?(E58yruTD#8jw57J z9;4;G6S$?9#Gk`!I#`DB0uG}qurgMzOsgev9{sSy>SO=wOX^_A<*<$}e1-eoe0`ov zxHT4qw(m8icfKu>a^25-9#K^+zdc;WD&#yRju|%LKqg7TTHbKXH=H=X*;@oN535OU zx$s>1V|-Kiy}EY;8ALC*3Ltx3pv~SL@gZN#3tRH5pml2)h$&8EDJE~^Ib_ZCdu&;v z*hhSe&y<(WZ5LSJsw!Y((NYBk3pCbSf&}mN%q8+$nQ`Hp4=`s+2>C-i)2W?aQApt{ zk#8?gJD@BEpaVadN6-2z$n`+6HJ)OA*EN6kdpxKq+dHr<9=8F>l$CN2AW7P`Z_zlA=6hlB-a44mL<@xcs zN+AmfrmQH;IHq*}OQmjXUXzALr%0(y^d=fpx`9Bfb3Gdg56zwD-tn>@F%7{_SxIaj zy+P82a%F@ftl&HPE9=z{3@OYnA6uq0aEq5f-}*r&m8E}4;{M_rPx&hf%%|DbX%x`z zzZ%3KoTv3)efPYw=&0zKrq5=_vkCR|buT;Jsjb=H=&0Er?4-rkd>3t@q?&ijxRabB zW7lmufOKj`X`N}^g*a1{em44_3#&_Hzc8~I(JCa;p_A!GwSaRB1m-)eSn}US<~S|1 zH$69csg?(og4;&+nH!b7td8sa)y3vw=q8D#urcnc*_f(qiJ9E|wMvcYVzwP|tw}I8 z^QnD&TTgF&C~;4~kl9h*c1Rm6O$I?I4_3XZcXP|TT-)Zylqr+-j{L#bzOAC>Qb-cu z;SGo&?Igiqrd7##huj)itZr;bBwv(F&YQ2_)e3Qzu??w?TU|?Xp|XHgx6aJp`eA*s z^pvjzOZi%b$j=M6!1!ro0H33T@84%HtIa2Spp5yp3-2gYaA$yf{-OQZ&JX#xD1?=J z*CMjfMtx9n)D5cV0=g^&xvVRDCaKt8ot(%T`i1hhD}V9=QB^7`!#33UsQ;IlZ-qJs zb-v*cRP3iwpl?QO&>&B~YzJ$B-HN-E9A)(bemHfP{0$f0L1?CYJPdAH;7{t1k-%yv zzY2Lc;S&5^L#~#Yi`0d80Q%ixe*xAM%V|5Kkw4Aes(#SY6#UyW^)*Hac}rn$Tk!Tm zzvG|D&6n6qCxap9fzoAh`D}-?|2c6mBGax%8y2HTxI@m4Y40|LW;M217 z3P~Pik7UcjdE^sf$2y0Q^k<;Y#ZBbmwtY-akR>;O?<{;iH283Zu_nJMLFG&q;iX*k zHPzjfmaqL2g~+}f*(n7!JJO2Kl;w>&nGl?6JA#@;yn{`3(`oPeG`6=+)(t34yB<3# zqX1rm>V}4)nx_clz9r|BK4X$sQ6_$Fen5C*WusYk^~KsxKTmmkHc$%U{78N1T#rjE zeNuAt1Jj@PeZ{gQKDaWUg{>gUUA{wm#cK%u7{g}=$FqD_5Yn4jhFE+LDcobjr>wQk z{&1~KowA4%42xH>>T&9jTozr5UEe+OOTJk=jJ9A1bWHVrC9v-#ZK>-JXFIO0>MpkA zid~sA;gJH1;SXr^pmc4WQj94VDgFrz*#>_zmFphos3iof?g?3m@;{moFP8@Yd@*R_ubgwTPC*(`b!U zQNBJM@?`y;)4DZE6zN*Mw9|Pr=Y6fEXAp4~_21;xcU)l%(i?B&i?;#S!rn_zE2)s| znt@4id353#J2d3RuHG){Kv*ReXHS;6PkN{>GpblZQdjB%Bgla=zYVufM3j>hx>nV; zo<4}d{)meqUXrtDEFTr3hT-8~03sse8PuxRydKw8eC$Ga&XsO{tx9BO1|F*DT^>J< zI|ivh4RK0EF^Sko4iFG*l;4R15*r`tBE?U@S`tIQ*HKD8UPWNtBA5_*Uh~$Nl3r+U zX4zvu2K$@8c=$o}%;?2od^+5iAoMYsfnh2!mKE}V#Klleic>Rz;__w@`KSvRiP$xB z>(@V~MQ}L;p#nA4m!%qJVZObo6xp8oc%gz?xrZf8aOQzexmei7s2HVGyYz+7dyG&U zpePt1CV2t{jXvEnZS$#J^d!^<^hSdRKW!83b9~b9HsWMZVj!?cP5B+Y3R8>}dscGl?<65jP zec#My+EHSoxvZ>fNPisV~Xn87^-IvV#XKqQC_QGRKhy4@7)V=IIZrdw zpH5>&sMACDgD`H!k(rBIR;5VfLP6lu+Z5HaP`~PnKW$n>O4aJ7-O65$KRXksQ7w+~ zf?UF2upIMs3?y79D0OX@x&C}*rpUuMkx3G;2qZM?)q)RO*GLSNTjlM#n^1z zSF(6B0v*|Dw>R(Oe(wgzDCvY$ciu$hhfjh)C0hWZ90(*J53;b~4`a+X4_zOAMB0eQ zM;XTZGYwqus+@DBd||Q=s+Q>G`%Ub8x(@1q5e?!hAErHguXH?C& z494Omal-A6+@n-saQQ?JbYO;BIxgok;$=3Wa7pCURd6wh0Jyd3c>svlz}?VbO~<=d zZeG&}Sz4pk0Om_E#RdPr5(-fv}Pc2YGo*~wiyia0210T#BM%vwyqBxh0O%a*W)>taif>dFdyAy$bS zxNpw@Nb4YT;PM{s9B8BTNmQO&990W>KE;S8QWrC1G*(zkPk)TF7LkS{ynq+9Bv8V#dZ2b> z#LxO%wP*{!0Yj=J(^-Nj=4=dP+5U4NJC=)|91YmIqNa8VPc+u! zYvSq3WYBLpiuBv$oI6tn43%`;zVD0_1+lg)XLCu|4x(p15oT)Quc0^k4MI9JuqO7X z>_Ou0MsCk%~nR#0l*JVst@wJT0C(loNVCgTw_7T;H6to zY`viL87|rc#f)-X%0|0eDnJd29!w<4Ri#_=FRlK7u6jYv;-|4&MM9PkntWL%wyvZr z^;=pE5qhZz21ZW48x()M^V?kU2j2iiLbbuGgaqteB3Gra>z+7U2%OX6fXJwHz=NC^ zX$hl>`VEMUq`U;@F=WzfSQ#TIdnHYN1Hk5orMv%}$?)805#Z%azJ<7>+6b+Af)9{u z9$1v#G&Ja;wC{_fpssIvhl*Xe<;wZ}&%)q3+}cOHwz5;)K{SbK7eQd9IqGd@I#2%@ zG}Q`MPi=Rf^OB>8exeTyMSW74J@!rGQ+q0MqbhJoqBu$Bc%2uNh6wt6kX{n{0sU@Z z#-chTxn=p43BcVt(87OCL9mn|=#=3B_?7pWn%Wq-48+atB6iZ*xMT_O24Sgr(mB6xtkHP2mM`=Ig@BECx zmokAHi@tXNcxG->FMGYfoXK+M8EsYf^7KW;obR}3rYOX?8E#;MI`@X&7X<;m$PiNe zCqjPyP)@K-)Ey~N&Owvg8^KJnuw5q?s-2j(`}zrtjuUN&KK`+nrV1W@(^I$Udgziu zV~{QKZmX|fa675PY`1$-d$Lf4wR>l1r0Fye zo2oYsf`vDKf`vdV?6^sHzIzvLxV z`*IF6JMVe|y4XNiG(W@x@&35g5Y*foBQA)5dC-wQ*zT5) zv(+cFlTbSokyM+EXyOkLI0#8iHl*G8W0P-O{7irwOx0(R`jxSEHD0d(L#6;~0ceja zC+J}J3%M4JD{l%ci316Gt8imUK@So;$^LA_4rbG3WR)5}cYl6gUt$tU0L08#F+Ja#KT&-BW3hDO&(!rkTn=KIl&?HLQ zSb>t+decm^>hRNo27X{x{2NRa|IX&ab)}M;wM#j&*&xj0?4M$V7h#HV*+8IWbIUMb zy5py?ewq9+BSlvHSSE66%VURGK(S*gW#9}WG|3uHmky|W8@kwz+oj`+7R}UnVm`1q zQ24BjzW>FIJQ0>;S#7M~E%RddF|{{Oz9~Ify#*3PhgOa4cu~r6FT(t?p*dT@WMjv|-H$5@ zjIOWcTd1fYSP8UJ0r_I=%h4frz`~K+cuo+Ih7AewWZu;LN;J6rLzA-KePq6zJ_CU8 z41(S;J-0h~S4X>c#CqTo@s60-rL**ZqBG2${9&E2scitPP5n??*%Qu0DRk`!B?N5P ze3^VMX>3ympf%O1d}}yprm;2(f z_9z!PVXwOUS8vbqMci<#0!G!GzWMyfR9bR{p536SqMvyoqN-9fxxjTw>iU}ik1cDA zODQ4a22Z&+>PCh7`ZKxE?w}CNCOY8#VjbbBWwZNXhG&{4ZA^ zYY*Evmk%me>`)dfcy#;tbu~-Ahg2MW8YPVyMea@VU%QCtp!Rvv@|nW_K5bI5e~d(B zaMXLgMBLcjU)Ahe8`hZ6dt5u;{6eXPMb z2pXkZPS(DU+kL%lrpqQf@Y6_#PRiGFsyGDc-V?p86tj}9snf#_c|7lf;s-LRtPnT) zf{y~i$F3l_VMx>gQ*8$~UoeA=Am)0kUeras`N^3@h($udlri6H`{wvD2b!uduwTOJlbfm#MRsR7<4%5vqMf(6oL2W$py|6U^k!p}#>#g=!DI&JhMc0Cb{BNp zED9Q7TeO=VP+$T1a@OM2QRtv&Sl+dKYGE|>l-Q*ungJ;Ho~ryQThp#wU`tpwFzXgK zzLv{!LO1MpTDhmqX}uP;?Bl(8y&SqCvgZXAL3>;w$Y6h44s{T2jVKEefBZJxb|N21 z58)r@R-bGiPr)!J)xlPVp^YN#dcWhR?1#^k5%$bo-NoQSUzDP9H#m&6+)xA1%=lwv zWxY{U5VAWN4$hm%%QXvBG!Qu{wBSzPyPWp!=?O!qAukMB3+{wUu-}o^%;HcEp5n5l zOS;?(4an?#IZbu7T<|q|P`KGVK$s{;BmY`Ym6)VYfGUDl0Ojul;-dm&cDW4bcKo~m zv4KpLiTTh8&hU|DCS7O4C!>rlmbP2FV)%Z+pDJ1)OJEyCt*gO9qh{0|;cf!}2}r8W zo)X(gRAsg6Q=pRy6APJGj7VbPI;v)Y6-}vl8FAYi#dVubJZx@i@B&fiQ0X_25tHCJ z&ZhjwoF$pSnD*@GA0`%a0oc)3)5t2(C-^d*sw}r8x{$xYF2qzWZqL?-)WtAHigP7q z(rm}bT=g~9kB?cz11l=!N^0M-*=sFnCySo@M37u}#jF#WVopGYeLQ%UI=i6(yj@bh z^xw!aALP_l$}PqWi7IOP9}wJ(hdIHPEF&8N-QYe&e8fMqX>^dD(~-2$N)dW+TW$JS=Z3T57u ziOy7>mmZK=0j(53hZ)4B_W+4OdGMKK$p5+uZ0kyED@mza-Cf{DhaMh)ubohp^_EKJ z*sNt@snrzMoXq*j7vBRbdksYQcq}U-5*ZvP70;;yj3oKqxAYX1lwXZc7Q?JoKs@hT z(BXO=^tL2Ydrm?|Z`u-jU&Yb83)=B=yYL6H&|gD*@c?~k>1^pjb{r zE^sobAZG#y&i~c8jIZ+W*N72+Q-X74-Gg2AS|Uj%s+kqfpAJ&4Uc#CHvpl!on98Hm z8ysl7YI5jV-0%jq4&110n>19)Y_I(J^@+90-iuWiNqp(;x6B#Vd*7qZ#Q5m$eQ)Uu zGdz|d)HTZHt2dV9z#6K*cwsv5m#2-!w-BYHVa7(dIDPmB&2?2O zZIf@I%t53^zbg6FZsp>7*jqO#{Nb0f2f8v7~Qnkuo?wFDhsItcge=_L>nm(x8f={`^+;|r=DF1@)pj>e8 z?svDwGYRX}I!JM}0$ZB4)SZ-aX3fc?qiQ8_G`cQ5(0t`1w(MN=&8Xl^a|@t?@fa)W zrnGvEoaB2qfJ1`*wK5>OqCFhcf7zJTdWET2aCu-qeNgX7t~v|z4+!iAI|N~qzy_-B z(o2|J{(Y`Rb}41~g7}3%0PyiKCSVX{5sF(ml4sm%zoI z&nm9-Mjc-g5(y*{o<1jQ1*Th;g{)+&1)*z!AVV|09c5jo)XN5qpcS! zu}g^g@b!N}=tG0|-~NVlPmb-DU#2R^Oyt2w9PSR;EC)DZxolG9&wNzDErWtvV=uhk z3Wsg5fSbvIuXgT+BIP$nt0VK6$2(I}y6eD&;0tVawTXWE2-x(ZRCsAh@>TJ(XWv}? zSj=Dx*G9+KUzyk}AHGCnYc~FWJ3r2KED=7$)k3pq%7c$ zBLL_CeL>W0cm;kQuxr`_Y?P3|D`nVNn30ak68oI~FgWiAY%8Xx!48G{hW~^Cy1~?LVx_5iPeI2~I%ON?cy?r$8p1V+EH1 zg9M2OqWrQsVh9(6u#%bAZ8LPfUZ7Jjdd&r_P0+GKxfx{ZBy>)Sv#2MlZtGQqhDSp- zVah*z{AteDldN?_s)xbLulp3PyLMa!I4oRMfr9V^8>&<2A8@ipKS=TFvy{K&FjVt>RzF z;6LH%)gwf?NH@+w?(#*NZYTiBEa9&98Seov25G}vvl>rTLJv9lUO5;ki-y)%pSEQ- z2XC2wfxT(`rd@A>BNMsd>ArBhW?VleWyh<&tPNyp=SUgO`B?W4|q2mZ63r7q*gT zm=a@|Mr@z^f1YF17AxL3LZhMe72T)~^#_-Vja;YK&AIkZuGT!t*-g+r)94a3OL&pa1m&=X7^~v=33^Mm@QNjx#P`zjsxb^XQbrk{n>locfIc9Qtx)(K;U6LP zSi#Dzs6W<;UBil2$B}}iC)ACnBXEldQ<{na4-iYrZwSnPY8;xozMG{k`U7E4$ARmEsiBRc_D?!J1lmX*47B!^0Z^oTl{VK=wHCut4*JgeZ$De*R(3 zu5_(w6Jlp%K1Y&vd@t)(rNM6h(@f$Em7+pHEV$~3O(JL_K~lP1X7ntVeDje-&@s?D z!S9vehUzcDp#QLS8@qX`!v^c*ts^=%Z8v4HJ%nK zojnkx4E6-V7*PV4TMO{8K}F>T1+hP~H?ri``U+8P@(*sUuWB$ttsQGTWpkm|{0gxZ zHF-RngA=`NzrsXZ%fdxa&3J3|*{AP?-TRl%d!fo!4a#xBAGH2vw%=WGZm+F z7S9E$#qc92OHw?WV1FX}O4WtD%PA zL$Jn$bn&~8L^7zE#7=L{C|!I$0L|-%T(w|`xZINYEBpbbRSI2I$GxDv)cKyTMUU6! z_p|;hn$mi{KwY$8(BKyNCy_s}ltvVHqb#{>>;3=7NO%E<|LG9n8PpKaI<&cLJ&0P$ zE_A}xu0;HRRSK>3{7j8#e3}_nPOe%~SXa3YHsgMO?U$w3vH`4&IpxPPD@1fqa*!Si zvezbJQt>xSAv$eP$z{^pX|R@!Sz5U8H-flEY@8SMikp~qTCoSv^H)l>Y)lb8-b3iCErsoJ+| zOaGoEoWV3_y|q@Al)?hh7Vx83|K=#(nDJ7-_gHYp)b+em!di(tLCD1>-{{dw8wh4& zWqmBVEWe=QSQ)86m(Hhp?_U1Ts-bHhsXC6CMW%b0v4InokbIr@*NL|8XlkWZ8DW0M zcJrC@D_TiT`@!9(O&b%2_Fgijn0Ajg*p<;osJbfxu}*mibLIxS%wKAXaJo#=o1yQd zazo-C*k-0;X?ov3Tgh_Oke;S0BbP{Ww;*UvnZ0C0@_^nM~9aBjP4nCsi{RV zWPBUc@AAgHD%<~@F>`50b#o$_*LbMp;vM2H{+*FmI$gL!)o)n-@zo89*}L!qMary0 zx?UjdH5YRXVnn!qdms&teg>US>M=138FS zaY+Cvp0{_o3lLEm7%~hCBsjTU-&VtY)*B$F!4}C{6dHu?>KC{vS!^D2W&~?dXoZ1I z&l+V%v_IKN-z>K~nF)YwQQlorzNACQ$8x<1=n`~*VuFkZ)cKupNujn4k0MYv@Hwm+ z&H#7((i+|m-D{8FU%WuHK;XQabW?8k%T8NDsLOOfS*~L|X$C2l@cwE|^24m%1eu_T zI$1@mXsz*}j@le9Q#nXHp+m~3w(fn>iwxr!rpnb6CX?}1Ll|$7r-jXSfTj+kBfk1P zrb&T~ilf%DG0czw2xW&zk+D};XwQu3(+af9knBhrQ+rUjyR9&-qgz!Tsm^cqE{T|j zE`E7&^Psk~-m1y6P7osjyboysOda(`h%hSPBb>{&n&%cZS{)y73hzy+SiS2X=DyQX zy)ks${zr1A`>69mSK8w$K~wIBOaEc{6N z0ClE-0GWMnfN}XsP!+QqXAXm~dN^`)7gi&aWy0ysBlox$$?C9%&9* zMYn<~Z~# z5%Sk8%wK@>JlHpZr=*2{$@D!~z?B5~SF?C=$hEFK4t)>7qpn}8)M zSNMykgCLWp7g}*2YfJ*L9L+n4sk#Tq66|9WDqfSme9Jwe>1u+#*zF0%&hB*6Xi?k1Fpc}T6MGzW= z;ykKbsp>w!SiZRfuE>3nX@FIXCyMSpdH#mCByd9IqsTPbS_X8N7Zqbf{HV*t>p?@V zLgSsl3;zvB#gwsYBTw#F!zsd!k20*;FR}o#aT?)Rne589>~#n8D}7M7jQ5A566gvx zwUqFCC!0P1B6>%ooO)FMra&e_Ukx4*af(-4;pGE3ALCTw2Wv0zg`bqJ6JyXDR>rY5 z)AWlp{|;gr#nBg?zP*CEHMfaAo1kCbC(kcPxv18LT#Tx|o326$Ufh7P-#{ zKn+TWU&N`FmXb#L*HS?Zi44WAIxjVI$VMFh_gDW#T4Dgw5|`s8vmp8e>n(;2^i1Up z?%*M=E}D*-&EA}*LA_`T_ccxvyZcPCe#;}lF>Sr4>JAKCp@glEx_>jNh2N?*B54|| z6*9TSUQNraY3G$D7Phn4*b4Ugvz6n`2{%kSDTjZ$dg@CqYs^T31{C$*QNP>Ezp*xE ztO&$I0Qyl|AprwAP1O1Xd-h;D-c*IPY>reSvI+U0b%|6nP)JZYmjBt;)rOM_Ze$Iw zO0b*X;dJ%FoD(}L46y@SzBmkNcG`_2+$0QA2kgld?g!zAksld2^Q6=6QMuFpY(=P7{I$s`Wj}ZG{SGeP1`iqO~Ik-zT@t+_$tz zRQ7e%XL@`)j?z}iBoA3Rx52ip_7PFAY<{+g{o~RO53{jI>!U_2_VX_}WIZ(N-s#f@ z)l>^UO?m4kId*)@f2w+2o{umWn#WFqFhrIR^nz3v zbyRP2Oxvkx~ z^X>-=>Ue>IS2JqzE;9f*e`h0LOJ~awqh?P+bD5x=JGaXn{7k zmDuX?Hp|bTTec zS<}LzP##wIuHqEE_Qi6~qWi5GI`{-kX3n=SO3)r5TAR6x`T25-0>+zgx>5z}-F_;bXz>k@==0i;LMlA!3_l)(2t34-7P4!=>7(GzK> zzE7(Y%PAirV?{|-^x8Z=_}%OTFk^u(nc#M(`S|5$C7UPW*XNlx-t3eVIKFjBP&bf1pg36P7`?xAW18wCN!0-=&VP27ISaAelMP;NRUs(BNmIv%a;sasun(DP!|3u^VxB#ZP%LyN= ztBOJWxr{^0TDD-mye)4@(2d!lqUm#VFq|m<71``-GOj4Q#?7lu?iDDin`RWj=Xz&> zD!qelD6C4;QLZYV+BDL`#GC%|n9RH@-3|@I?uCF>`pN+`1OcSeorLMO5;!5!>he+&kh=Bp#WUzU&G-2up~Z2-Hr#GmSc& zfNf(%`8}02Ypspe4K%cK`M!3q1xc=#DNL!;j5bjSBN*tc#h{0ZrTY=gc* z>J?%GinGS47EOwbsZ;UV&ddp$P@QLiBFY<*zaq+Nb^(v?upWE;=M@H^35%$nC@P`> zw1@kR;dCJGvjE4H#>+70#7b$YFoX;>!hObj#u2x@TC%n3o8(>QB*0_r-~}aaOL(Nd z7G;!MY4h5ZS3*o(+9~XSP$V%J!tSwwZ*@FxB z{5tEGn5Sle^uoGyc>1>r0E+!m!2JJa-R9~Z za3ueeIT*g`er|!dRsr%#EAKp;%c{znw~m!v6CX)Oj+)Mu@jLf&uDjy5J9D8#?XHnB z77zm-Q2wAsJ^-o?SyT8)n;seR-52Qc`qr%%irmNX$(!}j%i@bdzt}w{-gLUx9A9C7 z=#88-Qbyd_H~m8Tjrc4xpP0_z*u-0R>(hniO2zuL7sXg(QHN6oF1Y95lP1~>Z5Q&$ z%fj8lUZCC6rePyl|GY%mQLO`pGM46rqQ!utDjvF#B1J~*4xGa1PudypRAeG|VW)eoB*XXBERzy%3qs$^HTd*t3IhDr z&&1t8-0S}If`fih)fUzG=cM~yE%~gmZ!Aj}G*N{tM4R%G$rBN#7_FeMwEgXH+@j6q zr9~Bg&p{r(nX%8e*T-99vRdiJ2EtbdZXgWXwr4V2o_QL^YY`l-*I$(dwULkX+#Ou( zMOUhhd5N%MggFWseq*Xxc|`rJ7Eaf~BRs}>*oDB`>;s)*PxordU1qgNbG$eK7tlNt zYzyKpi0H}jFURkrgRlK)|MZb#2wo&PNfl^@qRq}m-r?j_y2sJXT5-%BD>%#z@iIAr zr@#1njYV%c-^&Re&J|`9T=x7Ax&5&`17H2R6kznFE z=q&VNi3+#gW!2FURl}di@gHeSgQw+TOp(doAH7yiQ4g>@S9Zi3Da`<$&h^wwP$*0t z2yr*?YC|Ey(!UK^r{7A59#AZ+Atm33<{k5|xB0Oh5LD$NKs?53jcIt8f{wWIwS8Zd z;#!);q9sm21RvkU9ACr*)k{7qC8_Y)9NZLSF8-=!);1erG7TK~9XTJC`p_mZ)h|)<;TO{HY(kK+ zUH!~Z{N*3D=W8=bqM&CPC??#>v8Ed}yB>UUHCtCPaP6fm6KoB> zqwhhALUNmn1p(zIlZIw-`@~_KkhyeIa{xHOH()*_Wd6My0F6ZxH%DE6sfhwnyr+LK z72E)<(rk!drx5U!K$n~Sl`l3`e0LV_|4U3P) z;-(j1&=EQ?|E5s3GKXP*Oy>RmyoM;=XqqwZW11j1#kRf$v!T3BL`H}hpbkC1AEBRd zb;@(SPo~wFfOO-&w~lJfb5*?1y_lgU;+{{6yfp0P)jcK}WL}SMs)kk}`0py>h80+W z51thB#kA$E#q>?c z3F&6oa0F_N03;wb?6-UAyH!}qePhfJE681^CK@bEe%>D!xO45jb zg<1+J5-@Abgho#sz@V&P=gWn~*yvh%cDDK4zZ2X%QXjVKFE`GaVg5mJ_oa&l$2xa% z5J^D{$~O;x^Lum%{uz&GcxNZUVE1x)mBSnp+{cU_-m4mXLo@)mR*=7`_^*H#kI22z z2?etbXU@6HPJ{~&B6+X+JzieinGkIrUu@vXR}QMyq0ReI=E&MFA``6URq7nKIT57; zh{is>Bi!egv+i&YrzT>jt$&r2YA@7>-2&kyFu5h4NO(6_nYaFj4Lrp`*l6i)C&708 z@c7wCC%{3tAJiR3LMmSdne1)?sDiQG_)!(F^9?wm-MC+M9L3*?yq|&M0N`mjD*#|| z!B+OUa5Xn?3f6scl%nzOq}$%RmMAqsMvciZXz2=48Jq|iJVM%?dH!meeDSfrKXz6p z^~0`5t=)zo?JFKH>sqq0vNgx}_fOjjJwMr8=V2NM2m^ldL*QfSKO!XN-7q9ek{%+m zBk|GQzgG#t5iUgk1AQ0R1J{tzHc=+iL_ zRZNqxId`}#t3PoAL;|!+#ms^CW}y15)^i|fA}*W>+H`-P+)zyG*KNU&OEh_7;Sb89 z98LmFdoVF`l*|J&7aR825AWH#-Cn#@VnlLa-O8d{O?kHHo$-2|+(#7)n&mqzbWv83 zCPRV2c)IVe8KtH?PtHaL6X3HijjteF#9I9!x*ng13Tr4tPtkw?X&>x{{<|Da50L4HGIuX}thYND-`YW1xm)!*}t> zemmv!o7J%pE9Bc%KU&+NWdy-ayVl^*X(rolsCw=DP0$zU7x(l)seKLmt=}IlF<-6* zMRe4l4lClrG%44pK>ZfrH^?8B(mw?Q7)SVNM;X-B^sl=|Qm7MLn^hA}$OP4bGo*3Q zRq1!(kK3rvnb)rwp(+hHc$83>3e^4_Lzs)9-pr+^@#8JosX-R)`osYX4@hdxff}YN z%Q@v?=x7LTx=J)0JT7s3$XfS?fH%95#r27>QB#(k-pY~j>@A!P6~Cq_{xfNuU{gL+3* zi(_`shGGh03s3C&oxVXuUs-ObbX$W8Bc=+o4jO1HYXe6nYZ;NRxQ^Y2Uj6Z%d-VDq zq#b_zU+wVo*%=aDigpaLAPPa9a%u^5$b`zp5)3?|j=nB-=4go@-J{XYscOyb<*?%7DRg7gPCKf4zb}oz{#*KBh64NO=`l9{t`majG zR&f_AsMOX5liCY?lDj>Eze4k1-oddP=*i&&H&VWQGgh~RS$ME3UpqNdCkU)k z*W3k|$UqOCtJ2A380%mT?2PNLCIU-JpVcXLcx2n$X;4=9{L+I=Kmr5hRh!rnOI#XY zAbj(6Q)lAv3=)MN8sDFw_IkN0l9~eZY^o2^GmzoKn}hf1!e&{!5AC&M+|#~8`A?s1*9Z=s=F=4h6jAv zv-U}k9F@Ks0*OVv*F{p7a1Ss=t~|;02PH&K-2iL@`hm$_tQH-<*~}}`AoHkb+&$bw z0)Kq0?&sxj=5g>y1EdwMQdtDV{xen?&b$=EHvafDJ?$tB9qbBt9Bc!7$t6+Ms;G%WY!}-S_DnJ)1xyzQYo}~v& zOu)@xO>*mbt5pdo69=?&fY(BK3Chkwws>=&y9f%6KAPT%4k4gmmxBjV9j6pa!Y>VP zHD|sU2*1o3~VX3x#u5tKhF6IFyQ-aFi0Zx zlWo1>Z+>1nIaRK=%LZJit1*zWq|8*>A+fcR9e zpk{a@pA?=*$n{8J=~WzH0e))+mr6sP03e&np{3n_=HXc?dshCD6Gxw;aF<$1o?_U& zb9(m{IxUF``mYjN1*j9Aw ztH=Fxo*$iVH?pc#zjQm_y=@~Vb9_O!K-0V6@}_kq*m~$)tmmz~VRtTuI-s%REY)Y) zeZ~{1}Ej!lcL=W(HQ^I`TO7jpRnAYK zm0|QwZwN`?)@Y zYVhnh$~K=A-j;O#YxrlL@ZRw1II|bRY+{y@byr#5Uao$5vHHOEUyQCmaqTkm08bsq zN5Ctp`WVuITZk5&X=>e0YNn;b%voaM!!OIl$mV#rvo($m4^Lc3@UX6!yaqfnK+%R? zfAc)+_Lgns5xO@Sv=Bn~Q)BF=?xN2*zkMk%cY&lol`-gO;_zuy`xMctlqpk6 zGS3J;2Zg>+$kZNG6m{aFy6YzOmaWt%zuBat;?K*wx4zi0T%D-(CUMs>14rmF2(_0rjtuESy!;kSgzbm!|&mNq>11aEJoHrH1MQYI%9NLh-BJ@afERUqFJl zdm+OcSxU$FNpkJ69n5s?5qOES+g`}f7__J{Q%-Qc%Aq5r=E4Pvnclqfd(pRdpdLJO z(}KpPU{!Dj#dI3-R?h;hlR91(p4c^UI7kW!$d^*z^7mWEDtZ+1(=|#SoXo#)i+&d) z-2`QL3)9x7|2u4b=}KNq<8!JqT}ZH{sXXHkXp76s(nMTm0(afMn)CmKUP2t z3SD=dIcMT?ozI-{D@@rHpdwCbeXeOgcT$6$#FLhGiO-Vn6APzBEHD`(6T?T)x_a@l z_zyf9v0qY{jEBPFe1B=WR<yzi$FwLY?()N z8mk>_+AJO9Z%BctrbncsR-GtI<31_5q)2hDkj#4~&G+q15?%7|*bQAYgBfpky%Oi} zd13xsj+NW7jQyEYH;7^xOHeNt_7>J)c^}RzBY1MDh!`jdzg$bNBVpRo4zn&MkK6T` zwIWcPl48;WC&PMVY-64m*p*-G=qRH7!Ys9SH~$Gow2eB@pprqi7?=PkiSeOA?{uo^ z(?zj1jyHqnmryLX7~5|6xCCKK^x_LgBRjShFg@3&n!6tHe3l-Cy37=gMU0<&?VjR8 zRs}s`2Sk^umUA1fwA>9NnCv4`L0^8{RGroO{!!CSkSHK(%&$`GWFEERoqwEtWMToM zv+J$j5TA*d8kfAC10JXMPT{p`%X4i5y9S>6l{9P5P6o|lq7+9#R~gU`^j&&*E2wNS z!^ErvfL<%P7%>6eOR~1gD^@}Ipi7!h+(CYH)1{8raP2cGJ}HA(4rhi^5@sUWViC~d zYSl#g%`l+Z4ebP|h#{n&2Z=q9vXd#I2_C!{9p*NtpJJ-tH0!7do{n>pQhGvn3{eWg*ji;)*tG$P(z^OykToSVkBe)XrIR8PeMCWhF!p(P zdxcs8DN^l}aO^VO)%{0rzIb8?K=R2fzWM0*>mQ4%bj|1FC7L23MQ_iYXmZ0tZ_n*bClg; zYD=B&GlwOMnOI_9r!hf!$7P$+&M_alx}W%{igtH`V98Kmle#2$<17v|jNNy9{}GQ5 zRD8M4xO+hr0i9{Ja9`Dl@S}LW30qYU#+kRMPx5I)j0w%l-4=jsav5jGr3+K)rZD5L;N^)l#jiS&%%EvK zcaHkF`?6V@&K7L`5U5(QPdr5aCZW!r^tHt%@1r6?Fr7h)>&_kr!?zX$&C@Sz6_-;* zUtehJTLLVRyqmL`tLGf4cDxB+#;dm%{+Q0k>MQb-Qcv~nLseQzfbgte1>V3WWYE37 z0jblY$b#^ZRd+S)y7hZ@xPh43kz-CE`|SLhXhzlS2r}43LZ?6;x=?uU88MWc#Skrx zufr9Hkxr}td2It5^8gFNnkr{^KeOL#%@F@N5LyBnCX`0JRRCU)ff6eoEh5vdXH~`?8MOz&jh%MPyOSe zfAuYeO4fbs=;2PBKi0w9UNV0_IEOF1#5|mC^)tNz6II&m!Y$MYy zaPTOnaW|J91Yi(&f5XnihD!O4BX}Wqhf@jK#vB7Ym){1=v8TZ}Xgfhf1d8|?$ztN5 zM@rZhzqBX{3tN5!`oK64g+PxL9akj~S0Qcof}Su2KAM0TQS#Qu=1dVM+i(YB?1Hx8 zxr*!je%1GG_pSn2=y}CN0M=9^HaCCuYHZ+y^DoDt0`74AudVk+k*j4+DPITL-J~o# zpOGo#^AlW_D#7gD_6ik%SSDg$fL$4CK9mBIib|k}!l*~s_#2jEx%{QOKBqAi9Q2j( zm=}cD9hqF=VC|-}ZwZ|VW8ZH=K-lY$E_T=byl0Akv#I7sLwWvMJ33j$7XC`j>ru}q z>^>wpCW_c}bUW(`$5+s%YEgS-xK<^{wVD(JAQk*b$&7=IMXVY@re_QRUr8MML5S-H z^oj_SiLFUswJ-4qpnI&4#be}c%TWGY%$&x2^~;e0e(MmM@{;mnwN$1*PGJuqUqN8_ zt^}HK!2<_1z~hu3NRa?GqN9g_4YsPK8(@BM-@K!l1_jzhfX*PVuXmH`k)XoorU)vb zn}mg17gi;al096CGB2{Rf&u9O*6_IYjQalHj2%E#hVW3}e_ximtR2jYMLG$9np4z! zEJx3Pyc7R~jF0UcFe7R^*r`TKKh36MZ zg<_~nHDs1-8fyQj*P!*0U-cphf48M}`nQL=r#{~SO2t7|=;Ln%xMmKXJ7tF}fPOpa zw(vt$p5q_wI6$2cfZtS00ZbFjI%fw>8)IKxp%G_ig{hf8928=9<3_lMQSjn0L<1z^Zws*+-gzv43v{WsCh=-WgRVf86LC#Ac z-DV=%gY)&E5~{J&#G&RBbeTx;+47k5naYdq+`H$<;r{bD#2Az~$aQevVBV`j@P_d& zC;AV`>DcQTbrc$OYi2KWtd4}+bee@6G{a%uxCtbyK=K0{%&m8XoUoLe=U<57z3O@x zs!K>+%mmwd6z$H|b)44-7zX+Dw;@+G1gA7NZ%O}VqJ{!47RdZV5sivVm-MtsA=Cb! zWoNE|GXhN&1u!wTJcn+4dW-cjDa0BC(q{09;niOe2ImoW#2+h{fc&aDa?b_+7{VbM z9iyzDuCPfosvlEc+3qc2DiCYV-K1=jDY7yAb;co$*wDecOvI4J<+TxE(Qe26}QQQ2&AB* z1n$Sa`O8)6tE}yl|oX4PVuj z%Y)gXeib>1B>moz5Tw^dtVOQ}M?>_oS=5YXW`oRAd4f}kv~o_$(pry|=vBOW7Qc7% zw(c_Fu<_AEUSYkoCysorzL_OHBx5S2Nlx!_?HAzHX_uuvF#1D14^>PhRSrlZFU%@# zT2)NS{&X>8j~gFZYX5q7XcIiocqTXY!silw`uOx)r&5kwQ$F)qT8w)SyapjB5JWw* zcBSb?LhGdF4P0*rqP{A{pQ&pQpm@p4_*Z7cw#!eB(QJgkIpb<{L~T-ir!0CW5XG(; z?@5`TeMnNV0xKczV9K_lS5a+k%^ag9N-en5n~@5EsK(g1PdAv$N(g1;zCP<&0kb7P zM05#O11eRMLEO(weD?P9)o*Sua~wLA@@{dP#x(wr)c6^}^$FK#tv;D8OUnn9{U!!9 zTI=M(N*1~J3YL!O?Uql9x~a>f9kIj4<m^Og%J^dxaWGiAvS`F+l7cdx9G8fSA?i@^!cH4uZrm;-F0FJ>o z_RcXxJhBkCA#+JQ8k|vjooH4p^f&vtIhYcQOKuZzno+rv$1yXSWequ>_Mo={T~sj9 z-IyQV`v`fKWx_-{ot4YtL-Bn3P*#E6qizp)H0Bl4qezMxi>pd8tjqeCH$OWu7rmJ~ za zP<&BC@Akuyt1Obn|7yqy8BHY?C4Y_6+QnF{-pQX0E|~N`zK&OQ+SXC-z=)gjEj@KcvRyGv@+hOgwAt_TxA+{FA8# ziHD4*Q;H6GetC#{B zHXf|Gk7|eoZ`OM&Zu{{iW5&`v#w55Hur4MpU43zza86v!VMLdZPD##Y-uQCGN`*S2 z%KfLpsFf?S@4IykBI!I;ORT>dZQV7Pd!)?W<8V9rpM9we-KLKEKI(i_Vcagag=5v#%MZzm zL%3*|ynN0LUow?*{d{8b$&`1%vD2B{zPj$+TH>s88A_Y^BI^x5zYDynF2BNNIZeM`YB_dh*)Xy%`imh!~t@KJ&?;z&KVh?Hk#dQ76AzU^|r^G#cCH!>CyO2f& zsd(9lDWs$9sI*;+Z>{`>%^*Um(wOWy)Cg)pB)J)y?5#(RZY`oLBkR1xA5}IIh8J>!cTbwmEu=@neHD=;hky@q-5*6a0P#82g7HX)8(sNPSPz z-`$FpJ*Gg9h3iN}y#83-YX316n2GrwgndDX#LS`+-^c1b;H2@UPiL+=-HH$X#C4X8 zrP_y%ZBcY8LqA9Z52ak&zP{jG_BQ`|pg;fZVtCt;b^8v(1Hu76LVCS_I3k=nMaJ=3#`Q*&Un)q?>83UrlTsk zzcf*lD6en|=a=hC=`sxny-r^(KMu+*ekZLTnP~oron9=%DMc=)Wwp;t-ZIT4yqL>H zYRpVJA|&1kPs1PFvUo%YdyJdCJ8JIPa@IHM+eF zh>DVe6UyU8Wwps3bBQA+XRdsR3nGPX$xJ!&EOHz)FK+DBd{bS61$M6Q$#idy@cMzX z{Dq1p!h#aNwJTf)tYfsLHS8xtNFVhZ{*pLf6q!fXhp z13Em9XZX z2iDmL5=zC!^xjTz=540$Tt!QwcT{8)1FMq%=e;@?M-Oa}U~m335*_xRJ*6kbiTu&D zbzjD`M3C%6n;LPe1(QW{%)PA{R(s1B~p0@G}gWzHip zl`R$}4mNZ*r5RITiZX`FVQ%N}f#s7hUz$u7dl2Uc7nRm|y2o-{cSYK2^2w61&5v)u zx7p~0UHWq>p$?xVl_>9z8~qf}1Z@|+FL_bZ%j|6#afRz!!n6r%2F9Lsud^A+Q!U5r z*?~6(CUs-zE9rBu^!8<{78a~9@$SRW1)oCtAoRNFm7B&x#qD=9NDB{!e)vh3RV zLwe^0-GoXq+5|LzC`+<~ZwrB!vAJaSv{02eJ{I+v_{W<+8X<}IjNRW507$B%!$jS* zwP-nv0rSa}BY980vdxqWw<|7%s?z3$fFP||)J@Tq{u|s&htr7Ai6os4sP>lzMi@ywN#o0=re?K|-MZn3m0S@mK&dFLNu&=c+L^&&ks#l-$rWRXu_s*Y z9C}H&yGQ2W+IvvYd}kU7E|!m-e+$UAcX@wDV+j)~8z`o725UBpMP`G|qAVqNwXkc# z>STl(-TYX2bhPlmjCTr{>vYs4T1gD=;t=xud|AB4ByAYh`^jNryytwVjLVgBas2zr zR{My}G634P7g~Y+G7T_v6K>`Tf}HOYRY@C$sDYMEjw6Oo){F`A4GwF8BrN^2^wr%$8+^~T=mqSu`2~ikb)`vZa z&p7Rv#PN`V_9w|eo$17#5O{a@669eQ<2;w@zH9Nto2L|qJcT7W%HD>bcd~?C4iP7p zitX;ENqs}m(~|3}K}|DJMRND?O}~}s%c~(h=^6XnWL;zE;vx+(QS*W_Y%L?DBx*1s z1GUVO$3njSVLd`;2uUn>LrfH3H7DdLv@j+^0zW*P`UZ7xst57tY}s|)^J%*)l7&6d-DgM&(b7-9vV$chA{en&57RmuQ@k-P;mT~EW&l#VaJ6|MS3&Xv_VUA zO?dj5)T~6wNabWR1r6VmWfycKusw)nLyUZoYz#XQW2+n=h$*$ti!#J?&zUS4E|GFOGbkUUpdcwE6Xhv3T<#Af#T28kE#oGHqW(irPRK-ckeo1X(Y@WI zqsiI~YC(r`L(E`{nS^r=y-XDbgw6ocsuXI<(v3^NAzYu37A_-9n!aa3)%0EXVpF6C zbsO~0?{NIFe@lj{wehv-DN&oQ80~i1&isgbdu9#UTQDtz*%akogp)CB3kJTp?uvOd z_6nKOXSVXT?9oF0vAJugUlYd0*IMNMA!K)e@NbkxFN@@qYqUG*cWquB;H|wT9R*aQ zyJ+c;o8aoO1($26If-rRG;Q8`3qGpX2G_mp>M&D!^WTpSruUludo>~d{@&E;76N>f z7)-Wyk3p%n(QN2^07Swl7jI0$hZv-W36?-1q%|j#Yx^Z4^$2NWvaz28!ZEjhGLA%r zHkReYr-8p0?fY$ncO2P}V$<_LMD?R!(52ff&e8`@XcpxD1HWkI{iSgq*a_lXAE!*x zC!B5!xPwuoqeZz&$nM#>MED)N>RPA*_U^dS#?zkf&Kw+|v(wW{o?l1!L*OS{K7}^L zEMqC`_gpo1?qY;Y4yi%4_U{#~%r(+h*ne!bpV};X+C|NSGEG=bqk^d+Q;x~XB=Kgt z4Yx}aDrb{IPX|cI*mb@+t8cV>$e|!SnK6YWRflTY+yj!|E(5-j#nQJ2Xk1=BHvKMP_ADc~Tf-F+ zKw$vq$YRiqQARD&r8A7w5$V!|NMckwFJy3KBeM)?0^5&jn^G3=tQ(m<%f+^g%MfwY zcKzY#i^5vJNv;N=`{!AywW%SawC=wI%D9UAGOdrpXDctEPlMIRxAMatw{RfCp1FVm zNXfi;H{9sC612&o<))dX2mOLkgSY}N=`}AeRbde4PD#C&^SS}ot=S+Ebi?nU#TU|l zy!6%*>my><2kYNf&OH%odAiU03;UPtmgyhe4c6}C@fP+=`oUMC!U+~@S85TltW!!_rK=OA4wd3pF>(LXU5LH-TF($@V%knsICucA1hY3eWN>dEXGK{e$CB;CBf3&dNWKD%^lz>SoPe;9esjCB<~OI0V9#@-54N#d0g%EON-PKHwTHGwWRX zULPY1*E-F+&DD`K+LDvFr7VVjkea6Ikic4Raa&hb;qIt@$W|>v75UaVDS0C}Eb#|( zk3&6k)Pmec%k)&HiWo-N=a`73E58F7VAFuAl62tV-In!DO>abOpTIB8mxx%D0H-#a zw51)LCx~iW%upJ|EG4K*j2;k(V?50DGMxFgiho{FR}yT2v4w9B@NPA*C50Q9(cv@l z@w0&`B1bs|o~TnOPjWX$bZWaA_`pSUbACIJag-Gh|}?m{P~JZc?JD9kEIXqlVQ_&r5C9YmY9Y6YNL`& z*hawQcApYyhCLXXjgy+ZJ}Wn>fQxm#J=8hcplb5hRc&l63J!_3>H7p=z(qk`-O6;5 zkcr6%oen=zqd3|nN8E~UyNmv&#{4}&d~i*=YcGfF0%nMgn*%M2guoq*tz@PBC{ZNY zBgYfC?f4ima)>(*K36k}v<|Zx)2?iYH@T|;;>WWc$IP4xS}@{Ps83ZigSiUN#7DiK zm}tz`r@-=JO3fUk=3k+QdiDRX{69jXFx7@DmG%c5Q;abFm#%Le(m{?RvGsBDr9@|DV^6zLvlYkFA`jn@z(pJLq#>SUV_SC7*$c#l+ng?jzEnclZ=!+EEbWP< z6`27Qs?G=-jYm_MVlKk7+R#r`w$_ThHK&aKnsTQhiZH@Mj~Ik~E|Fv1^jOQp($~Pz z)*&C*Cz@{&!rb!n^hU~Dhuc>d`DGS)!ho^D8NJqJ6rc&8QCvP;r3-x|!6Y>=OmwtR$ zT_dzM*;+^FoJTwK>mtDe#<|Ob2gx=L{qU|E?ZeEYa!K1%@ReqIzxF5A;_n=}oj;^plCs3lo+PVHc#1lq`CS*nw|~aQJNQ(@BuXH z>x0LgchDStcgg#~md@Jo(QYET=^5m2-%|N*<{PWV01gzyDUX%aH#yL`hF40RW_akD z%U6QRZ5d&`g_vyrikwiAqEm@GEBQY#i$HAq_`@1tPz9z?jPOI0!BUd5Q;`ma_ripAnfl5A@&KN#s#%65OC z*K8=Frt7a87ijYI>pg2R`=yTIZG#`1xFu|PZC7YHpEr8r^};lSuu(T$Mm04N=gNDQ z2DExN%&eEw(`p3HvzA4EdfR@$QR56DY~9(Kt|U{sfenp`e{ciDjUc`Qe<$hkAjH62 zWMrX+k?C06*c+)Pldy7f4I{RyS)L;VLQV!QqFwpoB^7I*lW@Ip%VOitjG((aThmqB z7t4i1p|)l#>*hnpzlFT7zgl#6JfvS`+{4fi)+#+@HSHufYbP4P*A39lGwM%nA9-oS z-pSE>H%^N4_RFUI(Z^q2^xmwvN-G>F|Cgu926w=Rd@D6-Nl8raySN=lzO_B;mp9-H ziU;!_9OJqJfc=ReWD0v{TxnqUq$XZzs=Psc&7>I9V2OD=chYHq7@uE8%5+;xNT`_i zYWqe>8GP!WhN~MY>COz-2hcY+N6XXi`FvW|Sp{k=gGPO#Vtj$-Zhsl}%AjYNGpKfSp^ z6S5_L0A>XciZz~2QbU!n#9vk)kyV2Wfy;N_tw`?xKz_!CyN8n*I-CAXc7C?^>L>+1 zU?%^cvsgxopXm9#FgJU%QVHyUM&X5fw;w_?$j=b-wv3UDkG_0jvCLV98iFk7tj>QG z9NfgYVR*>+G>46aUeGEH7-rvK8#VmI-)G?Bi6XSy58)~h=f*m>%uxdD;xw>#q%n0h zi4=BVs#A{cY2m|8FMLtohiMBvBR zqo3=2if~vT$|lWs>e7m;p3W?KjO(mRiFSr|X82roW}t>*Kf>452=9JK#x1=|8XjVv zTISVK4cw?yCtW@6ms1=Icn+~s>hS}2Jjv5D*h~UA`ei|#UK|%?u#($oPAZW7-Aovzbzg4zFDLfDih@rXwz9-ENH-m|Q2-Ylyk%<)u zZwL=a>b({xWXzQ%$f>&nPRyl=;+PX~1qjbV3;wN0h}9V0gZp(vv1$vqElB=dWu_Z) zA#W^Uhk&!jF}IZ2I(Y2?y1xLj9hbqiNy+&sEtWR-#RittH*kOWWD#XAxMgd5LDthg zJyohOp-O@8(8uZvBf04>BK%xl{ACESl&q2lo&7pt*phP9H>?}O(IH5GC>j#A9FawY zS&OsXZcd{KXRg7v_j*nBBx5-k54H0eRAFCiT4JQG;#EJzY?;pH1KSI{?APtq=h|+= zt1X`WJ;tRg;dKdfpT$wCmtzunL!?GmZ-eWkPBkQ2Op4}ITM~c!Nd_N#?T6k|Nfk@j zW}YPF2%-!8G++Ej_?;=$HA6PwS}pARZg#8pp;?s2^Q~vI!lRY@#?`@y{1)S2Q91u- zKwx=%i$nA=MR7L)Xc03g17&;PI($aHd;*Pz^ozS7b!cbv%A?{$_oMg&$7M*Zyl0&H zRREFCI*>KMrj;klGZ}^ei8tW+^sXBX<1GJjfk?02r{)vqKAk{2Rm+12zD2wgC{}KJ zWl`P6FLHK0L0lguuI@<0)^n0JG=%tZ)F-eW<1+?GGg#idHC+{Oi6EFZ=Rw~(3TYGf zvuB#NISmLyi~*5Lh7FDXD?VUD7s|2VQl&3qDGqf5G2wWvUc=p0aeZoB7ZaP6-?Qi0 z9)(-i)sKF7q0V{R-v`nrOD>^7r{^v8FqKvg-X9Wu3M?_jg7_P&$2a%(o7^4NsF3Ug z-nos%6-l%NeaDY+}9AG zPnZ-4YdHyx!rfxAZun^~gM1v?M)BjO335*UEBPfSOF)*-~@ZB6pEz z3g-L)nAQn&buYMR9Zn_j0Jp*-68o7Zn0jP62EF#|4oRA&EE!_lcz&6w9`8Gz0Nn8u zoJ!;+9Ix#r-3R{Av)DTzy9)4Wuw^REX)6`E0-cu`c6LyOkaVwv%53@+w7UF^h^451 za85va13~mf{kHv8^eoK}ASvLA+&*Y>)=fyK^fx#@6A^WC;rHrD)00KYvX=ag+;SGofeNLrAX)#Lio|uOuKqz-$0tazB^? zIGSLaxUIQ&QpdQUDIp8E`$hSwCRJi&E92HIXa``jfJ)_{%#1ed(v{YxJ#7aIZ;ZgpSBY>08ag* zc#7c5sS@A#@pq4vi0W=VHo3I>bY9?iL^wagk9~#@$hEpRrA1%K)nU`qjQgq`AA_Z0LSE&bj{s2k=9sYzJ2zQ;5=qAZ{>w_moY3i2D=H*!coM&oe?GPnD9F4WAJE|>74M{- zp4acEt=&p_6kI|L;Q8lo+|^y8A)x-_8~4vLob&95&@%^LP*UF90K}>*d%OZ6O_vqx zo0+-w=b0I7$Izd`A9|U4$;m|a7QFgWf2olG64pSK8e@a-28A8NHS<$X9;UKDF-i9bk)hvj;GUzPQj0G1T^2tFE0|d;kdz=4 z(VlOXLK)-$Z-V$7@KSRc@0)hkVl8@p>FOw)R^W%hK;L4u;&Q_|dAlitV2y%v>}Xfq zUHH>Jl++VTn8EHbKz@I5x(}%slfL8-Q= z5os8IgDs0L!w67uz#+U1FiyaJskx^^7sy!>P!`$_bh!op}k<2vk|Cqi292u|+P$xHnrtyW`DFcG& z%rB@1|3p6RH2^$7-mvVsOOC6uG8&(Iu((|aFWzpESN>c>R##+Yb0$yRiVE0jnw!6* z!sI;(BosPk=yc3>1+O@$Bd7G6O&{hd;UE?o$MElQMi}20QC^lmPuh>6+&u!I5K(DG zqxdh{AgMT^Y>MHvz(4k)f#)VVCOd&FG&2xAzuo9zs`(IzD>N(?*)R(}6Ia2$zLuJa za^UNkhu{$4sb!IR5aDce8S6a=2I*fB1B`4p734!1!$mQXtd1HsxxX(g|G5{Ga^ZCC zD9YB03tZOHEZ(_gHP{#68Xex%w75D^of!8tngWIUT(1~!0@?h?yxdpN^PSxEzvLoZ z_i{))-EAIz;)W3OhJFXR?wR~r`U1HgeW5&aBV|c<=ohWU+-Y_DiM_X64ry(*k1QM{ z7x5$`XtwBk!a{tTccsu969@Vdia@~t(?fBuDBU$THy3EQ4R^U z1!c}B6h^EUg@krz8QwmD&hrV+AO(C6m-DiX4B}nvU3|Hg%l$vjoIpZ!#VnNfg%l0w z2n`2tGtqc>XI_5Pg&=pEyu8V61E?fUefRNucCWiV`zAF`i^n5dvTF|IIjw8Q>1Q2L zmdps8-;%-y1f*qw6=&ld@AI#XDl3<@FT}RfnuJ^ohPj7JHF0yD-Pc^5R#zb`hG%$r zBVG1Cik&;y#Q*kD605R*QegL-4(N|C*WL4c=XmKPk*$bFDK4_Hg>g0|qB|F)hM&zw zY{2`y><6Z#AeOsC0U}0^@Id6)nEoi<uar0#E`?RscQPZWR6k#AEk zw^FYA5O6(Ky8EuRWB*AFDnl;5OQd!G0-_sc-GTmZ^Yy6uno<+unTTb)?tuGOC;s(& zpPC~{^YuEHbb3oLg)RW0@1!p6oqxJDP|Q;&X0Wz6<4^A<#K9uZfK zP=mOuVS;N3y;goVhBF2kcEBnCJ?3padqb?%X5VpJc0rlcrLv}y=@-o*2RxTnI3bBr zxe1~jrQ=uFN#$GhIe6F!`IHCDZ2$rJ!?WcMuFV-fX37Q#50LZX?}X@LLulOG2?TaM z4Q)>tTu;Z-1I7diQfe5RKk3&`&86VR ze`R8WxK39nDTvdJPfQuo$MQ=t6jt?J;&S?8Do6|HN zzzro3TR1Y}V@&UI{vllld{UOW%5TI6c)r}(9ZO89FLL{S1>j}v1Npg||7~GjLVH23 z7qhAU9QEEri;!1hGAaDE1v+*55F~3u55?WBvBzxXK+{9Be}HG}{D+?n<8B$dJ7N!| zVDFA`Y?eLx{HI8snh%W@ubueM$08)}wl9iqWSd+R(Mmcs+k@!)!&w9BCWeT)zo)NG z1ZD5xriijay4ZNOmdV|RLc;Db5wgYId!jlCw#r~{)pVG5J~3kr8#USsEQ^=$Q5l}! zaUgVC)>ftP8HaW}ZicO|##ezBJd8+EUAyclB&HdXNPBZx#vbE^@o|z!BY}7BhmKT-_#x-xV{CFKTq3E>K;yy-A(gzkJMn*8E~Hxb_1d$k)Rl zHN~4#2bPo-o9Zt93KjgPI`E*ReG7gQ@*LR23$vL&TL@`$%~M%Arjm9RG>|h3{!r>( z|FX5eQjpHfJ4Kmb@vE3@-m=1!qovv1>$3Km#Lb%0aV;MA0-0NoYb>FQDP}49LLUCf z?W?ge|C1XEMXnR8`EK_0;t(mlH?v|JL1^*EMQU1LqaydcY?x{9U8J?$->Hem35DqtNT$9dU+xVesiScAg>cB6 z`%`Qdb&9)o^u?S`BCqu-aF9UA+p&|ANu92rCh@n88~C4^|6+sL{4^Qw1-K?&JNK%$ z578j)nJV=EDEks{DBHGwrBW%{5JEi_g(zznRFbk*iXv2GU$V~FQ%RPg60&ED60(P} zv=~{(F56fp`!dEF!vDN2ZO{AtzwbSco};HUb6?lF{?6ZdUe}#dqdLA;GJ-|7R&hwL zs}H`7iaYh=VMIYH4a`d}kDDRMAo-xX^2p3p@y#f2Rtq7a3y}}DsQREKt#~$eZD+{6 zk+e4_U_GMXb!3?au%IV))51hcZq#txA%AvBp5Ir!9Ls%WPlaE{J7%Olk(7v`k9Pax zSqTRv(aLuSM#xE6ZbrgwPg&Kcb2Z^oboexH?+E25!C_RA^ zVNoz%{A02vR76C3#3R?_6!bh>#rN_+hwk?;P6`y0a2yb@+DO<#TDXA=DFGCnz(iWO ziVF#n%q|HPS%*;*g5l(NeV8|2S>riDIJD5*o zF<|_3-iNyRwR|}kUqOkz+T)rjuf=#c9;+>ysf5Z6rqy89b|qP5x?CqrcPD3(LurcA zpHMda&~@zX;5==+@`U|(@3@)36dh;}QWRI|X?TQ#1pl60zd_O@KBww%cOUh^4|BtJ zzmTx(Bk{XRZ%nsIag4sP+AnVUWwjKh#`DZ*mp6Vtt5?n;eNwT+-`-^56o>fSeg_`+ z+me1F@0tMWxkO)9PnQor7Rq7LJ~(){&^}#KfHA}}{QKouA?LTkH}WQmry|e^lfw-4 z1IER!mXXhf2F;!aK+u^Z2i{iI4 zVDa@cl1|Jf%_W;{nyMyK>6QVD+o7bq{k~^O@wS4F@-bJ@yt(rGB)_;yn#3x7kNC;~ z)-C56>3z|=N{5@poTKcSnBsGWYZuMq4HE6Gr~DdbBN^jUVtk>70<`(;Lqd1P{GH~T zx`ixeli3X6i`nASMJE<2GQZ}HT$AuQWW_uu-gtL^uJM`jE%SAT2~xLQJ@c}qCiSdw z?UFN%g@Y%zwvU=DR#P?sTVL$$$O=42VrRFu$58u^QR9A_nUicveS(3}7I_mrQ(x{# zb`|F{WHYxve_-qCF|(VENS_$L!1p%A>HR*2}a2-3F7jvGI-FOsX97cW#XgJaYUegVl?RcS<_I{Ei!Dc%X4^hPFI+FE?&lBu1!U1@;g>TFsdM?o^Bz?M4&#r9g7b0;ytS!)8>N& zZs*TGv&nX8*}W3+!IzdOpL)jP4@MMj&-K~~l;0JZPG$k(RnWPMM0#89K(N>F$YIq< z168s_Rjf{~h(fL|sl5Ud2YgA5Vv_69y}CD^fL4M01GoSy=611CdEHdFr?PSG%vLJG z4Je!++3m`n*qP_0rUH&bN(P8N&f$HUW0j~xbb*W-1# z3t5mV0w&ToRZuvEMP|jEqSkZ$0RZl3-i8+xE zN$fC4{wNp5hwQqOZ&g}+e|zLga9e*&-&$#55_@O7@6#e_$;bY*&0Z*)AO(Nhn^I4h z;8A_rK9|>?CCz?yBP<(wXKv_X+{L8iUbnw=nQM;QHSsYsH-x50uox`Ph;pglb^ zV?Lbcw(t{G8W=t4k4FZ_^_a;s-Jv2T6V0f*j_qV_)6W(bNqhXMp zl|R^|`!!iV=n-|7_9P}E&Y=FIAHzq$d8`Mv$ z_mK)Sjy3S+zkVP+56)FSa1LUk$R8NvK28knR)1H$`^E8k=)!aLD5#xBuuWf4;>-#u zsb0u)O$r%V5^^YVDw>{BgH#0R8H7|D}s5VM7Ljjc@^#zt|gqm$AHJ+ zWYt=)^M8`Yc=Ku?q>>T`Z+$C!&yqCrrf(eg%Phhr>}1*v^TYBp^ntd8|{k)p6~fCG3%xM zRAFlHlEURa3bgA$IsKz$7d(Oj%g9vu5IY?rPY~8HH#Azz!N5xGuX+med5=LA_IOPR zp&5yV4}Y11+h`d!+j3ttzkmI@F+COwJ9KyifipdYvi?&11w1W23}$&DfOu0rrYb>K z<>DQy7{bG~Iw!?9%l^f8+dQ3CBe21;Y;Yz>%5Nh5Us5Mm!9v7hs2 z?6*x#pE%<;PZf5~N^RE)PHWI|$7`yu8{Tl=iZ$tSBOn zae#1YaM?Y$zydC8PncFuwVUB}4vrmlBW$K3pG>oS z9Ff-DzIuYLKVX8nalrJL9}E$5-p|h;?H!W5G-MgsC0`r5b-LRBLi_S~fz&1H2#;v! z44U)R3->$UJeMGqQ)BRP&6y0A;wJiBk3E8tN;?P{@z{C{-7I|tYJ@YLSM_m(E75_D z9UDd_N*PusQu$wP%lh7v@qw`*jhRc|8sf zoyc7@>eCPNkBSVNAb*dJkb5)5YTo(Gey|2a@qS56TkLu5#bw@1YWG_DL51>1lrEu2 z(9wOgN>Ky(#R#fw2tQ3a+OA_A)@v2lv6rz;#anR2jPugP&$({83>6LnE26G)Kx6I- zx(5$1>nw6wq4R=J#8e0E%iM{NInLOoJ|p2$h$qL^%=nR$-&2Fj>%s39UbVg>v<0~v zd|2(Z^s#YTcPO$HF0esJfU*S67ccknuAuQSU2AZsAuaprO8*_;&QHX%)>P#3THF>( zch&>>Gtjf(D+%CQ@oQ^hmkd@4tco8oK^6GMvp|!rc~YGCu%j(|`vmXmY>sK(Mbt#( z34SQ8*V-MXs7%PV38UO_h>PF5Tw;rLq42!^Pom}TMF491_aeSxvh(~aJe{$kJBI~J zF}<$reuGtf_)uEggM`=(zzIOhIp-qRZ*Dbx<9OhrO>AvS_1V=H1sr`?ajDCsqYK9i z4Nvz*EjO7#N{FCNj;thq1m%Ih{aZbzxK^!iLbr8D$A*1E^l-)DJ7MBL28n2ic{0#x zM&>Xc)|r{1@BL;QtfTvblg74cAN^Yz<~MOE-s%%?r(Y?pQG^2Ncdzx2)|4}f$Is`&>FLItsP${SAi_0x)zPh_IanBQHb@-aFYW_2 zzC&Z`03r6QEs(~=Y_I6nVH#M;8k5h{M427rUVu0A@sEB;s+HARZ^1bk7;$d;BHHdm zMB40mdT0rh$GeQY&|7NL(1H?koB^QxiFrOOKp~ z{41tt1;B~Lt(*9HkN>xJquHu7oFAK;9!Ys#dG66677HnX^C~w#UPOxsM5OhEqaSB* zBcnGA@ik?>1L}9|8~3gBh((%vZ>_ITGy2b5wxm+ zgGcZhP+4<=Pk?Me#v(T-%{?)=9E}t$WmbJTq6O%wTe!1)i;eSVyeM<|1pl0ql5ShT zrOGj-H%x8vn8VeSKr~0boyD4o##v^YUF}S=mrXccHpKbP` zPmD$BmdQHfPehNh2eE#kO~+Szwc}8b!U>jjaMldAjbs9tF+H{%j$x=r-#ppgdcscn zg-7%!@Gztl0YB@`fIj;woP$p+FrSB}V+<(&p&ByBatX>oW7I~>gaj=NzWY(0yLS_J zO;BMT`NUHp7aSxQ!Q!egWp>@>o)w51#XNvq^33Z$*ehJS+S~mxmoN7+GxTqZ3g;yq z#d>^V$`<`EElRz-r^=cmxw9dZ!sn$vL3Gfe8k@v6k)16K7iZo+r?)kbBWdkP=`D4r z!?IC$43p z8O}Om7$k#B6?$(gNGwnjUvaa-82P7hD5Ve2uH3nh^74o4WZdzWzAz?{7e#p;u*K~NACR^$H>7=HtQ0?gbQ{2baEs5PN4<(`mw} zMxliZoY2BZ{jT0(X>1@>>un{-4ssvNy-fR*NYZeQerB++D*LXakw|E-LWT$1I|Y+b z0r2|{i~u%1!`4aBHL>B3_SeeT6g2RWg+OMM6N_g7&n|=54tN$iH5Z8XU8r!C$k>>! zy71!m0P~s9zR;8ii+{!j8!>Tl6GvU^g*lj6=_j|(iO->u%5=EyJJU+Ul%>Q^T$tmp zzndVD2Q%@CQp{dvNyBuNk8(?X5NMqJYL>_5w7kr}%ow&Unex?V=1T1KGSfGoqA5%7 zT(#;!s3n)e#~?$k>?XNpG|xz-PJS%Y(Sp;dTTFR4Odp0p&Wc1zNW>GW)yl&oxvXYM zHg=*<$7NOe(DWVOKOUnaqk-F z5tYbu)QYJcb6pe@mCkH>B6a8Wa*TXTl;(RL@zq7YZtB(UxX|xmgQTcYKwO!m`l>Ured8Zr z>X%7>ve=N>v?}p$z$FmQ!P~qVAe^5muPF!}pLV3DdzS6gB&;xUJb;;Q^vKur_Y{{K zFI4(Wwp%TS71?7R!e+d4q=5EW$sN-6xEvVULyknO8oJ*<+GEAaPycTZld|^!pi2l+~!hz`T&d);#la(bN8ZEu@)6KgI1j?A3#l{9}DiWI=rF{-aygn*Zqa$C$E`1_$_H3SfiSk~Z zw;VG2?79uY2*|==1V%LX2PYogGN}LB$>rpZSvxys7))Oey@jKd!}XI%vnvC#xub9F z{9;%-177WmlIb&M2m1hogrGkzPTPO2Xd^(0AZS|{G$EEE+-k{vzbNqwOu$nbe%@c; zeGIMk-Kv6ic_DFrMUEM}#N~VXse7)z_gCy~enoQ@Sg;BKqJ@I@>_m%m$I%suWbia( zq#haS*6Za>nQcZv(uAoFL>>hB!GDFq7_blyVl?Pv2GL0iZ?N~%Y(ruNMkdIj#k7mi zd)mDuV z<%CiBt8<5WS|&kWl;kT6o8(Z3aDcUEq`$>XkD_R&FjqlDA8aSF5@trLcz~ySl zjr6O(1oOh+y-+9uqDJ_cM_HjLD)8N5@p|ZcZjw-zePY+JSH;sJ;b!xyJ;uS=r$W__ z1CLONS*~<>oHAU{n20quH&_Y{K1`*Z1QlUOVof{$MH^&{e`Cbu&qdB-+~HP=;Be%H ze+gS=XvS|HJlT#7su1-D0i(boE$GJa(=y?xjrm=5e_Rxr%E*;Ff=k4nWGlq|;}3-zR? zp2MRINQjZ?^ZTp3971NxISJ@bX=_)8RBUBplCJzN&1~iTcrbBpQR;0SA-&bf&% zMCD@U;CEyFsJF9ARc|IU<*hp^n1?0%t~kESI>!+xHh;@fLlmhea8XZ!B2;Q0$!JqS z)UjH&_APKo0bv>mXQP@QF2pgdFe+?kOVx)fWin3z9x%fptVtMG>#QX{MB8-R>yWb9_CURmoS!f(l%TqBM^I07t zE;sEHQr(2pJWk~BcDtfoh2Ayp!yhhfqS28nOFBBjWkNB)te6OlO-R1#^B1xh-n=F@ zs1@PYPd4sh0?Yt58ybR=RFJ4yK`a~Hk*n-QQA1ZQNZzIx(9h?U-&bliH*!mnRkK0-$6Ik)PX;v85I zeNF4jwD*f2MapxSU*s=j_T zf3g4smtvi2^P;#!wD)EkYTO$5ah;OB@PyJT>oKoTVqwMMb_`KZl(Ioo1 zpbLXkn5+}pLyacLtp!ChJED2^R9yn(q#BRweNa$>Y?yVNVq#vr>V4Raw+Dub5}#5E zg2%^$-d;1Hm`-QMF>Huv#;bZAQY>tiTnTu1(h%lN4ID`TyZc+RxyiWR$}Pw(3{(UW zd^*_{SHbLBBc#>K>kd^^aPIK+t(Slpl!q5Utlh|9V)|7@%151+v|#eNIQzo87Q0=g z7JZDy7Px`%&CW;CR*H@U%J+%?-&5^o_JPII-7{b%HP1|7YPNM83*-wFI|t^ZsD*Mw zOsrvM6%OFpdHv~0&<1mgu{JR`N2g5V9lL}U68$eN#}#3A*OXVrlcnd`z{CGG)np!W zQb(J_Q>rmjT@;T~3TI=lljqLykwc106a1}a{5#JePi#LeaPN;N7DPN z_gI!~(kG*{5LpY>&SpSYo~AR{1ZNSC8$h}Gw&g-&ccH*(6L6AD&1kcu=38`s z;;H#}K#P2ief31cwUf%DF6OzEMta4i``fhxTE(Sar-GXn>|Vir(TH7jPd>k@BE|_P z5NBNelR=HX;UoX!jMbw@RD0C1kAtSOxd-vn8$IMdYwnV&k7uR#=s);m^(cg!dKrgbZMxbC z*B=`UOYrk20arqq{fpfLKw_l+2JPsM+&Og5fQxjLl}@>}1|vUTss%!@@+jS$i^$*i z@~v-S#z#a+HR$fYF6rBK}?)FM25#SH4hFW2F(357=UKiNXv*<694n0CjdH~GRFjYrGFMdvvD zdXXCk_-sHQxT7hvSKd)Wol#banf(0I*J+0rtu{;QzduHD78z9R{q}?ZrnXsNMPDJm zb{TbNsc1xVw#q8pMXP5z?sJEWTJk;~mFwS804Fp4qk*g^kIvmad8;u=;>)N6@$_cg zR_x3H2LbCW|C5;9n)bAssVHT4d$>W#cA`NrKs+L`KKVG|JVw;L+iX(%_DB^IDXQk9 zZ01sSae->YyeZ~oQ~O)3$a&8X#P=ND(S7Fiu$9~2v z8ocI-7K?K-FtOm=aB(u{!heW0lTCA(dpgBb?D`dSTc|KW9|H2ry&dVVp6P7APkC-1 z^C6x!MUyWM?J0?w>AjQ0-4&4ET`U;@bG8mJi!k2J-p0K!Xg)xjH-Rlh^;}OGRhr4w zv_Zz;h&KdOBpv1+g^hw^G8%V zi)KUf&;my@)JrU2UO8UV^i&+>3pWS|S_d}e-7mpAO8?t_6ZT=0LUo1n?!z2E0dAf@ zqFw2j+F&3-%G7aLD!UewZ=`Bpklu9~%oji;Og$1C#`~JP8BoANKR08LtFmR`mY~Y01Fn?{UIjOA-O$$ha^)ZvjM&%UqouW*XZCR~;d%`qs5K#F zFTlp1bT!})t#v6)g_lDKodNW22CBgQNQa8Euhf*X zTyNU*&EW!qGUm z2;l*xXT&ebLr}|0#~Ei)3Upq?7zC_FrDI&?-F-ct^S(JzKqW{ZR6@@1pHxCm?!P=>d~!oXJ62tTJJK%P)X!bN z!_?32eTP)*;HJ*&RTz1;svrxTWVxe)gy(r7>t|K*1lqpIoMt_^HlUZ6p?n|t@R=bR z>j$kV@<{R%?GYwK#B~S9JUDxI;--GZ(k{5#c3DIFerbprj=MujUyvFi3LFTRZbf;~ z)6i*~yDwfFUpziEXKXytvD;Urr0GKB>x^mg7SpRq0R%4T>Eimq?DQdNe$zHhOWXJB zbw5bHHW(pdQ!Ho>G3^8c^YX1m?CQqzC;&OW;z zoyVO+%5)YzshoSWMK@?W@AXr(udJJ`uoP#JYS;RzHDXf;cV@g(uVONmR3Ew?uMo!< zppl22p3JO~+NCVI(hZ6YXYdIs<$92s)YINIaFOt3+S|oqLV}>Hdmz_%-yKca8m9Zd z^bZ&4dRZxFKF|w{n94#wFQYRjFQxV`G`*mX&hFyWO-AA`J>wNfoT5|z>5iO(AHw12YQcvtK#~x!8(j_rrqm}P+_(^$-NG5zRLl_ z0*{kfmZM7#+)220iWBZ8j1K$6J9Vyd;>@i((hlg-nUqT<^GC+a>o7|>xX;;d>oZ0* zq)(>Sb98-b6$bZ13VT)gm5haSH()7X=K!x)3W)>2IZ9I_G|2DnlMrQ4HBdb;;`BK= z8ZHd|jENiJoOaBoo)(HQCP--QT~9bfk{q#QMfx%sVF{w${q)3dhpj2@U#MOr)$Y&| z_DxHQ?)U!qE2l$$1K#kKX>q-qwP+82B{}TJ$)ULf30l^ada^gGx1${6Q|%N#r#w!e zBY<#pkbnKNZ-^9U|EpoBrWiPiIqLh(m+c>8DZ?-Yb&w)CwkW5<5ur4@=Pk_Rnd`rr z?}$#sUjkcp*81%RwRcI;3H|Q^Bp1jGLXID<4bIr}H-z_K)dxq*)cPl<3j^vcF`waF z6RU{gm@?36OXt zv6tggAAweKwB6O$^oR8Z8-v|&y-FUNS_G}LgYb=if{}vlEjA z_b}#P?X#Q{Da`MklN*Pij2Onmh5yPh&T82c!UXN?y?YyWV6bpQak;2jFWf(joColM z@(pPPf&OZf1Cf!lXUI6vnk?M@l*N(3^YrTXC!I1|?1W~Ezc3F;E={<+#_M4EQROVSImx|*1IADBNVev+L<#p4eysqh@qHF z%Q(jj*I7sM^hiPb1$4ZJ%`@eFTv;Uh+nWSg1qlzTeR@4FQ5yzQ6;gjayI3H8_3)L$ zZ$4Y3>sNcR1Wj${ zT?1-cx#?&khMuc;WKNoigxDCNdB4{iM*4K5`EhAHVLy0to#98LGc;6;olEnb>dzWO zDwZzUiUr3_1pCeRe{(fJxxO3^%p3FDIv(g>N==TYEWX`uCKikuO#YGkp^(pfwl@2T z{m?v32zG{kqxxdbD+Te$sIh2L8vJujWln;iOzeU9e@w)Jg}z<+CKi9hnSNUjaoQ&k z{-}41%l}cB7iuIq^ScyA0MjX4hw)l0cqIp0^@tN{JwYD-M>3Lcwk*QNlF(5(a_L#h zaA^;ZBa^qI{CGe|J1X2d&HiHl1Qk@COAp)2Mk^(#QIOW8KU=1~ zyHyQ+c+ zJ9VjZ6#VXO8}QW_L)60aq2d}U{*1<+ng)HNEaAhFibd!Is2%Y`I1iayO)U-Mx)BZ4LBD3~%CXr0OtCZMs@bUD%nX zxJt_T`|O+RzFT>tG|+~q!}bx(|7;gyxL#h0D32f}JK%Wp$lLz+zm$d>O-6BN&-0qZ zbh>%q%LAWCw;06=qUcXymKXLFdy{_ zl$azNtEv!r3PmW}w`*O0)6vTplvG4bk5x}rUzW3?d)|NeD)#V-eN|Ni*BkVy33)u& znY*p%#$-W}8bmWtiDmaV_wjm*I|@a-_9(vMGNJgQ9-|_uYalgc8&ntpwmh z#%X6vv_j03F8J+vMT~+%=qh%soQ|h6W*}1JHHG-y%<0-3bqrfQ#%nyO_Re^KWH7Erul9-R)9f%sZM1p; z{YMqgfk(NN}0I%#`7DwD4=>s74W*57rRj+c;-UYe1=$G{fUsKq5r z%vVA?GSVzd5R1MhK>3)ST(rqsTqq)E(j!pO8290c){OrSAK6zm7`8gh1ZC&kCe{+m z!w>MP&)JXuj0N`^!Ykpl*4+v#dGYjO$`uQ)wW*5~Nm#bb!`HNs7`Gb7)7`heSi_+D~Q<>qoRS)+E_Ya~hAOx?O; z;BqRiq{>6olV->1)WwUV>97WT5sGcG_=!8WZ3O0be0j9I+?p`YrDqOw>NOaz+JhT^ zbLwS>QOb4W_+HCc}^W5<3}( z5b17nSKnrV>w4!|NNY&%UvphZn?{Iu`*v7CCjRL$4(&~_!_yA$e)kJIW1QpAt>rZf zH)E6!XUo=DUhm8#VnTIz-cy?5_jC8Qersq-Q^9LK zVdwqLFtq%!qDh?L6&K5(|JKFD3K+#hPZV=BEx(PjrW{vS!b-*ZQ+ z5YeN5CyU?7NTHc$DDa7tX8dlthv9v%Mmk=6F>tl3N-Kirolkq>@-4zNmBOA^qBZLv#xU0y+Qi%+DS?cA7lK|En$OW*C3 zd}>tRo*v};pFu8%6^Lxo?ml$3uG*Paj_0|tbj0%3l%2%1tr?|hGztSF=)OJ`pYhGqvEeAQrgMAk`v0QMRn#lrh*x^ ztou!0w7XuGEcr6A1<`<)U0|`|2B>21?Dfi?2Q!tx2m@>}Dt0Y9k*yQUbfAF`wd`z)~ z$-X{{!rOr1c}?G|^#FaPZ2{ifDijeiIraWIoDU{^%47EC=p>ji`WnE+PG^YM9BNw{6^lW_N;hNWoXHKFU z^T@IB*%Zd^-Mz;;?v#7*l+HL!jOLQomzRnH_(d5i3`dnU&YuHp2<*}Pao41Me&KdmWUCg zcz#!NHKYW%&ZQdMaN6S<;bY-N@Ggv_f6w}Su;-KrD(D)sx8e-VxsExPLJhy4$_Qi4 zy_V)ExpOoei%pKxkI4zQ%0Jr?%Xm^+Ix#HJmnV4P%tz<<;tT`2kVRLpVn%oU9rwoE zj2^vlF!}4de}R`!{QM^$CIr(UyATDEc{G#W^J4!=>xAMM}7r25$NOv%82 z-k2z1>nig6&=@UkM))xt<~)4ef%WTN&)o2VD<7&4y+`pje6o_VvJwj2ikdpsUWwl= z*ATAkQb*T-h7IiH22$1rmZB9QGWe%v%a>Z;3y;im4dl`FJuK;{g7G zkO(2a;G+;b0tdOO0rYFDROf374LQ(9Ja z`prDIRm)Qg%Y9p|5tJ3C_?N|0V^H9@k*7!lrZ_Gl_N!;ke2u6qZ=`dtrh%5h06x#^ zI4(SKuf6%zgA}LUIM=vzR`Pp|eV*o&3{_Jck6d&po2%xY#8h?EUOE*UJCf45NAzC$ zS{n_x-CIiKjlJSpu>YH`J@6z5EAtyzR8&Y)o7#KLcHPzetU5@abFJliKII{O8?9v> znop9ZT2v0S*muqpitjdeRbdSpJ9 z0AfNSP_BtJX*NBN{)Q@Qa8f8@ENUoUIyCyhdO@)zOhIm5jXgFyr;uBl#W~Y%zvV8L zoUdHrXbm1j#Sj!VEC&&=*@9%&D9YO{tHsNhsmVF=l49ZoF2OxJ!NK_?6(8Nlt6JcQ zFI&^x(C!$Ag|eW&niVq{Pat_!2$IK9me(GAq*JrGv9c-y(qUR=Nw@e~jCyd;=N|hJ z*^KI*9{YSORFwT0cV(3XcXg_iBZz zOC}YLr@TwZOBEVvX~yIjUzpgVB#Gs68Vtv0+MB(yQ_IU0QCT?0>jeov$LS9FOx9Hg zg}gYGv*(PbQL^b5C78F{>6qu=e2u%Xb`C#IHAI~5s>MU zEx7|hYE#5m&PihD4!IKxqa=YO8xpqt) zmA@Ew+z1h4GJH+s|hCDmR2B@PX79IiSg6n_(7V4lP$NsDym7+p> zwQGd~Pgfq6eKE0`Np~N?NrCsP`F^E5;1N#>{4=)A0u}YTWZw~iz56mPAP7I|A4=WQ z<3ObcBhrjVy(d!17Q zKK6k&^_I1n17KhzeA14VbMYVimB!2ISgh!tYM$jd=<`G^>{1$-?*CZ?Y|ppaNJ-qi z#{JHv?jT}U4Dq9__dGlLJbF;HS*+*lk|nWCyKe};rp(HI&(mm@v+hc&_MM*+Z!d{BJa^kiW*;M?spykeT8=E_U<+a_fa>%i z$z3A~Ioeqkq^rv1z==KdyvV^q)<8V6y!0ESh;+`iay%{Rs1bm(YK$Vp&H=qgAH99c zp?o&OrB7IkN3!iunU5c_54;;v3(-~Ea&U1tEDoIa^Q~KJqGx|E4U~ajo4?3{R5rgs zpTV>lit=q>D3!Xe&w#w%q8iimUkSFRbokT383BcpN-N4%8sIsx=jRT&$0`hQG|8Tq z^X2=f^=}W^qJY0S6Q^yy8Q{MKIQ-xE=RZ4Wx-|=Vs)}>iEg&_$ZxB)~m)~|BF3H#8Zf}DBdoiH~?fQ_$}r0#TBn$tHz}I%ZPIv->nI+@+{aJ z`cD0PG==3q8^Q|znVC&#`-eC=Fc4eQL^6ie!CKD3nhdbfcVU?iYg=A zNQ~C1o+3b9>bH-~gw+Wke3VhsIyf*l6f?0-@OrB?ZhU%+&b&hoZjSF$id=TPmcz)d z;F6w(CX#FG{B@A#{fV1qcl)kB;Gc5b`7qb%fB*qfSm?nNDNllp!=(p`b0SnfSz6Z@ z(?>6uC=L3AK67RFRYF>J>Tr>cG(PI+OK{C^f zN0Jp+*sIBay<1hFVl~7yEsB9;{1=P9@>mp(84LSiG9|^IuJD%vvt>kg)5J-BJB4_D zJg4GAnoVeJ(XU?}SzL0c68_O?Hqk0bGw?A@w++V4J-L|;Ya98SbRKb&S0N_0oO|Uoc?bRn19F6K_!sy@ zOm4IqBVYS_+LL%g*)_Y5#jmK24vTKU9DHgke)zb@>#yrsQYv{lrJ%w=!Ztz<(_;;k zR>|ah4QwoaAiZTa@sA|N)_}S1_JkJOv>60Nyh_^QKPwc@u(#5@t5X~h=SbJf_a*Bg zD?sc*XlD4U#)q6?oHkT9*IjF0Svq1V&mh)_2d@&%%|;N5p1W8cL+qM1$=3d(k-W}> zsId$gl9s4;Q`MQNx5`|b@RuYK^J$f$DJ`BSdsUy_VuVD8X!q|RGDx@l^d!*ZGw{IL z(rxZ5W~pp~I*p24s1YL|v=}6c-O8$S>$kbbv$2qKDGy_wVxii$F~7N?yU4}xq{41& z)27cSbmYg=g=#QN|H}(+Qi-3S8nxH#vHf35$*II@SVLqP7Nd& zk^JB7(Ujzj!--hzAHJ=HV4WJgBgWp0-TcGt&3Wz*&`~ofIBMhpoR$~c966Zv0T9if z`Am>e*cTr-aw+Y$3niK8St^+al&x7X$Jkn8ck zoNs04n>e*+hezCv6uq*Xvo0297J1Ugi5I~lRFT5CzC1_XF8fKF)YrYV^wV%_9r!Eo zD~PMD)Cev5=Sq>(_Aeg+GG$SyPnNW^@Ot}7t&e^~+1y=HcRSziTA7DmonUFFE?FQY zGqe=3-*3zItCCJ(+2{JLap0?k1DkVOrz+tq>r(wqLrd<0uJX@bnF5kK0;8_*ll2a! zdp6X3F}1k)Bh#Wk4m~E1*s$)ACWWpWHxCO-v$1k)-@a`_?%DdCtIdODM6%rK$zn!x z*Y-)>XyrcyMSq#m>_5&b<=upC!S0D}i&>dRV7BM~Ml5RREF)YY-&_sm^OEVwWgdm7 zWsa)Sro>9)Dnpa5Bd#9lwd@?%-%ygB$D5yyjhlbaP~SAl;Kvy~(F70{EZrpFQ|+SZ z56KlE{fl-%HMjrUx*!Ux~xGWKNOH{7ijbpVBYVDNYxWE2h zOG|#4%b!mzKWz;p?faAfC(=-Z89_7O4n2^mphpateECALAS6zQ%Yxh zKT>H0&E;=CqgAjYxFp<{j-3%b@ZqwoQ$D7CYBO%{;o3kG`ME>CSY^Pt1G62=>$P$f zJk&j+VlCbSmXqD)?yB8szI5kOyl+b2drcj|>mY1umG56iVwTBS&1G`d_IGmj!h-n_ z?SLNIZ*XAX)YnpyQoOYA0Tvak1QGL*iCB82>oI$fNSfwJry(X4-F^k5&QeyD(*7*=~MVdoD?`%ODSHMUlpTBzKm8?xi{8NVW zZzwA_5R4~p4xB>CqtvYJpL|gRN>+;c7iD=zQ?)k1#DHWwzsnHSed@>=djF`Gfb|5b z2!sx#t>?@__XB`lEkn)n4}FvhT9MC*x5&T;o2q@`Zh7%Tgzh5 zG{olGiA3-_-^U*u)vIie+X}U&YP^F+;fG9nfI??Uuifx@#yGBsr|OHIcG{un%g1mO ztmF(%hLo8^8E^Q}a5Tgahlf?twGTtZJn~j#HyhGi1!JuB{Hu_Kl2ko85`fvleA&64 z$>*zlr;uk)Iu2;IwGG*lws74}oTLiI&wnjLKtf9sX2P=>5Bt(;9#>-x)&*Q+*y3 z>N4>57i+yHuX&7pD+2^)V7g;%4TA83^N)BqkglAwP+rt}S}}$ijPXkf3#-c4i0us1 zTjk)T+t{X8c!?vU{>THu<1YAJDIbICrl;qXj`-nUTZ5xsTUvWsdPPwVxu6Vj3h(p zk@%pRRC?`ny>bsII1$yvZ}>|!BBI*4R}d7tj9=`GaHer*=%3Ue4->Z^*6M|y{Ce2K zVuxUm=+VY9gkv|6BLxh`5xq5&E`lVWzioRe1=kasw$kI%-ayogjbuOi;Dy&DB|(N{ zEAmI(0=wKmzwcI{wb#lv8L>0Do@N(J{)t%V*O)P$*5&XLm*ZmQE z1aKIZscaKM72WVKnLN+@aQ<$992-kY`X8ll@&Y#7`H3!A$ui6{t-*}OY?Bn?yoa>3 z4mpMWzAqf*RW~bi1B%szUxYF9VNgI)@%Vo+V0K-0sVQ`*gj+jq730kEhmxu zVk%Mlgn*y8khX!$&+!T13bf`~Ro)c@L8}#sXpP}htQJErmGTy%5xpF3O#DMS#8x&E zS?KHenW{s}U%qc&H+*?wScvU_QBTHaV0W6D|L}P<4;F3bvY0;2xplcLNym^Rt?XOV zAJ5cOVQ1PKVL>u1WEwdM^ELyC&okd7`}RRw9HJ;@Cq`PrV8H2-Rfq7Wp{ghN`37Mn zF2UzCqx6QTS_}af19J5EF6BDFc8>HEKh!=DCs%fH4()&eeL>{ve=4x~#Q6C!1~NRr zLg>3!)o-m5Qxka>+s`epuP>DxIHWAk+hER{B;hTp{pR9Jk5BuI4WK;5%~#p7+ddK^ zrkJPmS!YWW+D{TS5Cdhx&V1E1SC^*n0U4P^+2cGYJcIjSP%x{{N>*=*l`?8CWpnL^ zjDIlScd_x|K|fX}lBgwH%9Rw<1a7`Is&6Zul@5l+X0EoC(9?isc5%)fVF->VL}bHR zv0R%Y-+kGS$_!A@N6XNvPn!E&W9nS;3r0I?c%Zhj;n|qOFWVcO?aTFI+YF8tck!uu zq;iKx`IgxQfn5lVHED&!zYJg>hOrx9;{`JDb*ut(P!8^3?0 zamdFsv*#O+qZK48Mfiskb@z#S-y|h3KdL2>)u7c_3O^K>pMw73RXvk?P|-zHcsIa% zBujQz6w9S#T@Mm-QtcygCTBcg{lkjcPG}|9&ML;Z*txh0eyK}-z)BVkn#s^IFxr|H z;N{E;aJcW1!Fkg5N6t0^cT4ZqS6VAyVzlDc79yUnN9^ipf_GE+0jwyCEfgkqcze%+ zQ3*~JgiwA+K~x}~sr{V1_!zG`7EPJndch&qN7oD;h=vbj7nqFZ%yjDiVfAut$6jE1 zspJmzbTCRne+}L&m)UFh=~W+gn8_P#E9sNuvTaS*u!nEE(XAMdsXAJAM!DDOQJZmk1 z8(R6mwqF(PGOh9WgJ~!qLmsEYjUVOr$Jx}bL0z^IgxN92go&a&nyLOMXA0+TF)5&e zdQ7e&D~s40th|Y@w2Awt+8K;{7wu$x2#711d=iuc@$fV%{h=%EfGh@mRZVWn?ib>$W^MWA)^wXR<*tY_ z8Vgw*6K5fdk3ITSK1sz~a{A~ez$Hx+2lPiPb)};zdw$qFs8nqJjD60yYd2~{!xUHi zc|-W7Yt(-(iF`lXnkDoLsvx8U3IGV^5U|FJ@@|ow)6;Bu+_+x&6q~kVQh%Hv=Q6VL zM@YY_ySHiAEH6M`h`k2S+t9|{l36XXpS+^^a*{K;oEHF$ zBu%jl*v_LSsBGU*0(Wr|Wv3G|O6p*v3PIBYLPacpnvqkt5arBf+vpNmD>HUL{K$$B zMu5x-jn>SO>BwmN%GPi;O;KWrcOIRCeM|d$%G?>VmUXp_+a89a2BG=-;FdM{dhM5s zdaXrpOOj>v7De5Yxy1nJfa19R%M`4*UAE#p6Fku;lo;r)10mqhyK7?dd@xmt!~}~< z_A0W^4y)*xDU;w0`JOiwP*02%%?UvEtq(v75su2 z9gTJ!cIL}KdBzMU&%^oFRyzv-0Y6C7+$njiLPSCp!wHsfs^eAxwJD<;iMG&%q#2ck zzbX>4YN(YV;10lt1-Z_}?0)g+#gM1LBj|7Zy$iqs3LW1pGtbjwPhU|nfvc+2(CB>1 zoZY602D=}O&k)JyQl!oj5m5Yu`D~P(0OMe{8?@+I>1{o0`Zp8_{Go!9O7+%kS@w8{ zEBO|`s{lqOSp7I#a+KEhl~+=RTQK*(UKo|uEJuyOSP7X;A@#>d*a;IkC}vcu#3JmJ zgo%=UH~#7HwPs_z@J&!UPan*1K6&75RJ%GS7i}<&1K}$|Rjjt|K`{_)`*+V=E6Ye1 zB1lK5;P((}adp_Ho}pHL_UZ?B=y1R&HDS4KD7)+%8ge zlv}{stQf-3d;8`&-<@aTJ*+G*ZL#S$#bX>;$x(Gd6`@nDh6|Y5fht3sAJa^b^u-FG zP`q6Fu2~thOvWgdbXE>0>ap{Svtw>=5I58uyEDTg2!jR{9n^%N_P7UG8(rZPAxRm?meu01~q~C zQo6^D>)gu+>%G@1MTGEYWXrZFX$yaAV`b-3P!Kfh;_LxqSt}f(eW#HqG5^?1?}wV^ zB)$$U!Cjszes3dWjjfatl*2yj7r;LbgB_wn@?0n!T4C4x{9{^(1oQXgSst3xfnR9*jD&^r!ed zjY>gsY-LO>yORn+M~b8<>${CaRCWffq%4KVUXgv@ zX6#8w8Y(3FPKvRwGqz+X`#QE6%h;D0V=%Vidk@~9-{*H-zrWyjeY>s}xya!q-Xpmiy9Emy z)}0N2PsBNM$Yf1?y;^CrTe+}~i6sZCg}<-dx$P=aG2PA`YH>Fy{`EICez_77q6zaO zte)zhPYm?i(xnVi!mf~>ZtHoYor(o^zA79lR!z}y%halWN{OqTa!8!?YLnUfzLIzK zi!oE<@6QZpdn|i;d7k^t8ErR6TvGU;7}{Pgl2|e6tLy@Y*%MS>372Bo41EZ3UZaVd z4T*5dZ?T<0Mfp?u-h3k~=Hn0Ug>MXOcw`%^M2F)ysFU(gOj{3I`x09_GRu?4GqZgf zcPF8GiP_O()hNiM#(v9qzC_o|IJ(B~AL(1XF|isV#|p07R;WpNFM@Em!Qc2(r{So(>~E}B7N$d!N`#M6trm4 zu)X(}AI@*BH>%Py1>uxXn^5%=_5p?&;-}mJ zNAT3U>a2a}D-#e4k?#XIcyz^aQT3hIg@!vCs=0MT@tq}&_P}cafJ_S{z=iR`fPmD| z(mC%1)tCN8&CDXxj6rfO9_bkoY%WkRo!-^ zeI4z!;M7%dXDDR4sHU95qrvJL@7c0`>eGe07n3$x#Ts4IJLl1C3TrJm0{X<-m1okP zV+r01ybtgavOFd^2?O{fD`P-pg2b&0aVd-*$r4(w_}3`-U_<#1e9Wgk_m1>D@5wR0 z^J{n?NZVXnB&be8yDRQ^k<8ZoT-(UL-Py35>93`NWuny!1Rsnzur3@Qn=;@d7O zuB-H6G>gy>SySNy*QE!|_L&|A=3LBqa^k!oGqdV(8d*ez@deL1F+dp)oHGo?W9n}K zUKLa|dc7~lYyM%aVDJ2hy)DqOXOJq7D9FlN0{u;CR4r2TW~RH{zYTx2s7H1s8((A=j-w| z7Jq;I^_9_F0{2AvVHU&UMFYVRD0bqE8X=Ex#V{@_*sx>;)o@sBmtuw|Vb-^ia{p%`mF*Dv$#18#uv{seC`Z`~ zkS!jsF3^vFT~w)b zcYltF>4)J|V-@H+*vB`9S;9Q%xHR6MJlmsk<`%{ufH6iVbf#?f-PmKioWxggM?KRQ zK)SiVXieGYVSy*l68@_Gwp?pKZwABDw00iJ2uz)8}`VUpRqz(=L+n|x`>4`ql zK8)UScgu42R7zsVKM~d4?ZwOxD(k|P=N{w`V(^d2Ph(iRa2|!!37}70pSoog9 zji!B0r&WgFBOrOZhNm>#UCkO|!AV)sMMtT}_P_|LUjPgvnZMe*z`WPc%EN)92L}pJ zR-{5wYQ-TRmfKkeSeRa;6mMq_8PhzDG12>6LiIWDNTFe&a5no;C~KYyoFX!p65;SNLw$PVNNl>wUXYFZtG#@K@8# zvK_G-Yg{}Q!ATSl@VpmeVkidudLDsg@6Ow$e}a1N8=u|AAv|#!9MtaXz&$2$I$T`} zs%A*;KHw^YED-1BrR2N7*=4{*0XlS8i{zf2lps&utkyHAi9*jaZh{Lf9+`(NGVK3; z#N1JD#uxOqo>nca1WU^{4})^-+xhi34ekP$MZ|G) z)kb++#6ynq##^(@IdMI(a$XJe@ zb;f8QmH4E8Nm~_xwxHE^Ay`=-jN!_HudmH$b?l;r_}r~*lB0>*c_KcJwr?fvQGpYu zX`&>15d5}#U_S+ib;)f95aRT%5laE6B+;xo|6UQn;KcOR-B~l&*f;>n11sx*h0CvJ zuSnMIz!s;S{UBPLEL-?LOZ!I-eDVv)-~ZmLqJ;6$Ej(6!KMB=&CE^>2p zdCLH>_q9ej^C*79${c+Bc)7mCzO>b&Q*bldgQZkiDz1b|^~-h0r+t2N+EM#BL~ZF9 z9K++<0XPznYu9t-DWdLV9X^R-5-kG6^1!$3{u7*e@^C4>q;zGz|GGSUNYMb&hPD}| z;|(!f4mr*rkoo5{CRd83&Y4+3<=~jJOP$jUgX)kZF%;?aF(e^(nD!}auWYe6D%`7c5mokF~~+?8S_)|G>-vtF*T%+ z-yrV0Y5fVCPq~pqB)dm0w$=puxZ*fsxPxE!y8LnrR~M|t!=k~`^+>HWf<4J=B#qX> zvfS&v+jfex9fjsP>CRy-uu>j?JiH%PJzFH9(`SM7vk-V;3YyKgY9{d`fy1U>Z;U^3 zZguwl@(5SlfkWIYcjzJ(#_WaIFDAC{%*0Q(_C>yW2jjJ{n!ED3eHhwW+z+cMSGde{ zURM0mr)%ka$i_}sLMQAkb^K0Q9w@OX;ZH82WP}NwmzW6$Ow0UJ8TqZD)SV2-!Ci!+ zk;{3ZiJeOXm9ud|GY`0b{&_w=GH>8#Li5T8h!)GZJO4Z{@#0`^pg_^cqp6U_53DoE zx6him6RT}v!4VN&^48l%q{|!`FuONJ+BYDmh3`>eprFJi6J~5dlTgu$MnJ=`hmx~t z^}$#dLsl3Ge?z`+ROH~~UDoQXr$q`InGl4c#3cumP>sGLW%2T*iX%Q<$^QK+zE`=a z(}PnZx>6$lbC08p9PS05qtAkzlY$LZv~ACBrX%W7PU|e$D_u*$Lb#+`Q*8W`P2FDP5QBJ`={?~y0#+Kx(T{s^3BUusRJ$As83Ca4gxb<#L)MTfgmLq3+}!-!yjz# zu{~J-n0S%d*mZdRSk>5jI?QOvFQ*ci2NOHaSu+XdD!Z(m)Gl&MBf4D_`~kuU;UD>{ z?))a#Tlm?Vu0PiX%=l?qFv2<0+G@;}KWRneE>H=Y&Y4e|yYWl}-u;a8=PlNOX;6)# z2?V-MbZt;89sc>`$UC)Mg8X(eP`@>y?L=_eBP)webevklZ1W-ZONs4n$IA4uo#=UH z+0)Of#ohyq!!bB&q|BM8SnO|i`s1szPrS^cWKgEuXWW2+Y1Rh$6i^-Ma-U&Qyt){- zCus!>U+;g>u+a_+?SYLXvp?mSH#U&NZ>DfsQA=;dhsOIr8pKJ)r1()g1X z$u`1}8*E%ADy_=S{?0tp$KHq@kZk8DV>kCj5Rmp0q)@aLMKn|v+n0;~c_qQ#rz)qp z24Q<`Q|j1(=>U;B|E_x_6iv1u4xhcB8p*Bf6~H>uoUmwuwNbPc4LJbd9+6)d-|x6) zYF&Ct0R*lov8x@ScfdOEW|+~Bf3NHgA@#dEI8FvStbN|9TJPsDjCn5unSBQj+b0v$ zqQgxE7@CoZWjj{liMcXzib9~z;*m(y2zD5XVhYnQB`Mt_ax=ss1GUv5Bi)6tsg;I9 z9U}V&p>HZ%?C+jv8|j31JLbI-my;GU9X@i@a72c^_pC_(*Vl6oE+#E9+Ea_=x4PF_ zG}N=@Q*w{C!NlKdUl2QGyxY6FQxw4x$$cU(W5FZhTY#p!aOK~9h0Ot-4GJH~E?B&) zpnTl7gF32sf2^~}%?OdKS+--NYX>%tbIsnIu4q1adZG|GCUVQE1Kb1L5%{Do@PG3N zQ%<5{+|PkWF}@LQSI48)f*`vCsWJl46w!%lxyHs5fLngi@1Y0P?Ly$0l}eqazvuvu zubgUd(k-hGrWG}A?)_1TUf75nyRZB8#{6XHCBO*NQSROw zodsBluKg`cn1^}hAH60BsU^R*+Y&OS)$UsOqWMbbpq|ggQZ%h)Q`g#}L=cm60B{Ccv{+%HR9;fm{hBISR_N5ITw~X>QHdeg zFTPR^`4~Fct4|u@25P3`w{9)1NG2{N+Vn+Z(*lk>+aAC&AOv-wm7E&u9jmw`waz<> zwHuA(z{m(U(2$CFFXd|IkdR>{$LV0|pw^hr>=_BI+;t)h<7iUJT00Q8F-!?QVQofj#z;Cx<#D5 z$EnfJw?+fa&48xuf&EH(AEAEe+#@NyikEnKM>WuIIdfF_HE z3;Uvgso(b~@6@EUPd#kgt0C;idcCIX_vo~%2?ewq=%h>xIYdwP=Apg=GEeC5YIjm! z0L^-BG?M3;y2fnT)8J+E#s)gTJYZHZk7qjorF)HCS_`UwYVm`3ZlYAT7y4` z96)4h43)G)nZ$?PT|^iRSuer zPX&iu-Oy^pbf-^|+AqJEaS7l?(2A7PZIK9-^#Kw8I;Vy|wC=NriADexd=JF=`p+G5 zvR4j$J&?NI>&lpuYOYpns}OagS{dhoGd&T=AC>#-5BO^pxawuvvJ$j9ZvyKz0lV$H zmYqbGVLqO?7^G|Ssm4xTTH)Ja>puXcKmHcOeCUv!yUP7L+UOYdg70ZN6FsvW@aacG z%ZWR7wF&C^AZP+-uK}O_b9u&0@}(7~`zyLz2oRNW_f1Z$uRFQ;{cOez{Zn(7)>^CO zIDg3E_#v+YBMSWSo}GUny2o4;6J*Ot)kB6OLhLhAYRY1#)<~6N>7<~G#sI6DNzYBu zs@w4USQ;pV*~aag3t);xn-?~FPhkZuM zk~mTI#st|1kW{W4uGvrlnsWRr~7&4Gne zwDV|>>Re@O4f-00c5FiO4GM!(7SFGfO!mF z@YXr~VpIId-~!{^7BjQIp!$p4X-}!_~)+kpLDc=>iDqN3$Fb{A)&!3W9^09Z@?a5 zKEo-$rscC=1rwO^6~S!)Xw9&N7aVW>4W461H4=P+$_*|6;_p_RN;q-o=ROZUBMl}{ zDE?;NDI8V8yE%dh&Za&JQ7HVhh2$5Se*jzUl^NLVmrZ^y(YCI}aB6&1{htSobgkHI;dy{}Gs9P52ma{TZqvo6paz^swKfHS z_EncXX_+inz9&4GKRK|TUMG3ul(EI0GKze0iN3zHrl7+SHed{wVy{yPuvTp_2g39dia5I*}%8k3mpeGmrNP?Z*w%)?X4^@a?3(c!Oo(P`>Ui7{~Gfmp?n0<){ zq4eX^%l*$!CH?;9%84v6csTTvwDv)HMdA%T^M~LdDcnoa8+E!jf%{C3t88y~(Vv+e zOeim{tCb79D@jty{L7!Y0W6m14olUAaDO;vF9@0bvoK)=#iO}Cz8KSv`#i%QS{WyW zvn;+xcm>LYMUU}n4LUPL3?B#9Q2>D_eM@6I^ulg`F`)sP)RlV+qhM3~KRV-m??CgA zG^rqk3MPeKdj`Nx-0^b*k2VCRKU{!AM@lY&^86tsgyv>%RqZ^19!>!-ocuX%ecmqY zX9IYtSD%}d6)FqI@=9FRU!GNTA`sfO38(Za`f6V9uwXg2VO{NK(ew$;b>hT(P>etH zoNF)a)*7WcdrBrjwlO~_?Mx!q4_pR_CT`wUIa>PAJ_ppUZ0T3Z+7Bqqg3NWQdAiy~ zc-O*awg|`seRl`=N~6a;79OTV!xXk6T*4TPwcyZpiMU$5*h&@lTcDd%c+r>Q&&*eu z`DL&5U;6^}x4g(LVu*6I1`UnTGS%-kD}ffUyf;PStA!?znYC57Ew9yq?liN!8p(7&#ibp~+UI5o`6-SA3Js{Nk)m9h18;}FoJ+?iT7No<8KOb2cuG82 zswnT9N6uvAS^w$QSK%L~mMoypZiRF3ut07e;py2qTKGqRa5HgFyhw}W#7cB6)1)m* zxgqzIOxW7Gn>lYT@@H)*uW9)47mp8??^}em&jk-x;Osz!0*pPPVPe7cj!ENzp=ONr zO70Q0)6LVq&InvGiGb9}e+v~G-w;-`ikRl6_*<|F!K5zfH8rUZPCUiTXc1L|b4Mk< zT;r}zc9#{v#`h)>3HSKXEUKm+^4c^^gN4~<4I$oiE9~kqM$e(8YX?t zX&k_2ke{CgUn2>FoijR(h5-WiP_-fboZ*#2)}U^D9F(^My(JW*pTBqtGI(-`hhYGN z?a4jYct{*L=0s`1)+@|O$V9fCscBfa03?7Ex|LQSV zQba;u3q1B=SlY83Rm`b``v%f;J-xXf* zt31^jwRSwpwnFE$pK=Yi_#K3%+Sx~Ng72&#bACMD`gPv(C#02a_proox-A6h;kXaM zN*CpP?zD5&kYk|pB_jh|ODLu-fme0CRrjw(|9SSejC^LX#i;}pA@>{`u6|{kngaaW zyeRdjMpbjT{Nr{Xp*(1xSAYTjCb7%7KVm@s8b_PM?9icacdB({ukrZ3++flG>S@zA z?311zHTlH$bqu91TC15HQZd`#W9B-3&-T%_hfGOvLD`gyvjCYCF-JNdcH>a((f!z? z|2`>*IkY#oDx!0=(^Pqm$TYSK{hK$g>r!VTIZoZ7W|$GaYiHD-S1WMeY&<^#=JkD0 zfTCyV?0?&CkG7LV2qp?ccro)-uecpWQE5(U^DmvWwt8V7RWfRsey18GNN!ZqrM8Uv z6;X~i_#qHdn|UQAO1hM_8PnM5&o*0p08j0>*oDlf@O3tRQ(0Yb-Ll**8Cj)Hb(L|2 z?hZWf!26Yb1zki!ULgURWAxWG5g6ZL{ZBIIoVyu{Tg+N^BTS7uy@tpP84#a0tlAp$ zI}3G|J=Bh>rS7$l_E~{7l~X~#hEgfN3sUite})oDOyY}7WL@ljyr}idz4d5yj*ilj zC-S<%Bt$ehoOOgZtAqhD%eCGlPi~Rh{ae#>_W3Lmq9)X~mEXr8xL}D?_f*D2Q7%KQ zBs8&h`yS?bTKI4poZdxn^IX99c%39K<#(bAGTxKTqCS&em>GlJhbAvxU0r!8d`s%A zf#JhkWVrj6jjFr3FkcdJG1tk{H}-Fq4pcYz$UST|LCI^|=)>CP$nh=r%FI+e;okJq z+5BviWNi(h06B-id;U_xlRYPV-dMf2xW(x`F!Ow=p=3UrW##aX9(5sn9mkydyF{r; zvzhZwHx+IR=-h?GP*N=BeE(A;+^arw$skixR6Q`sXe*^I18`1r^g0puqD|I%w6jWD zzPitfZGDvf(LE+0<;cHmtFUP;h%5OrW1zuow-~m;%<)QQ`p$(fd6^pR^RAi5{eXS@ z*T6>OLxecD^!D_tiCvGH?yE%Ev%6JiSOf06Wbp4aj+_945~l+wEZw{hl587i=wch) zVB3v)S*d=NE11^g3r~v;u70k?!zsf&=`1#hX4OlpT|pmyA{kb0=9185WJ*+tQjMNb z)mmbG=jP#IA$CqW4KOI30Gq9E8B5ns_!zi@EV65@a6s-IunGBMJkOId{nG`*Zn zPe^grR^az<tJ;rDuw=~9+qg7V@nsT&|Fm%5je+Zwh&v%m7 zM}q636|@Mwl|!ug`8k)$R!4sN?KjiZ|-zcgCq&~D|5DcnAI*1nhB>4!0tXZS@|4vvATvQ*ejg?q|O+H zwVXVHzz2y%fss0RbZ%tOFOkpgn8H1x9a$<`e5LDiTULN!NqQG3`jXYI+lW8#vy8~X zmQ;USc1TvUMkyt2O<`y6d$oNs9A34SOw4~G)UC|vKL&@|Mf+LaEb%pz@U;s3lsm!x z<*`w9qL2p`@Ty5VYugUsaCPFBW-Ih_Qb{W|?s!HDnRRot?>1gyKA4`v)Zt4bPONwL ztt{_e)^nRKxWT#%y6dNK6ovu3m#%NoDMPi%6WiI1J?Q3V*1OM_sl<<=V49_$fg|4; zp_P|X<0}i>NkSr^l$+F_#bTeB=Dd+7yvS*!dfst);;bk{Aqwp^;asxgvNXG~!4fy` z$?4!BrNU>+o#9Dc3=72=&BLJ?a=Fw#s2Q!JNR$wi*GFgpe6##?i}xHq(=yiIO%HU9 zPsJnja&$c~Mq8mam7YJgL$f4-&aB;=jQbd}o9lyG&)Zq3fIiZ|%Y@xssZ)AkjIUZ= zV=~#IFJ&HH6`L$8d~n}KhPgCvzHJE%GphN%Mr?YGuVMu|aH_P5WGpW0{MjSPP))6q z;rpv@&_#yIPCCEDHDU7*?AyFSSaXPfGk^Ls^Bl+=7zLK}NOV)yZ9J`eRmlF<(vl6rp9RGM?B{eQ~DC=CJSixW14hcx!GD2(fX-2LIQU$YgxuNR||nj^5B6i zezZmijX(cVV$TlcWW#v?^gUAH$4{CmTHmqC|w0p-#firOY^pnG5eI>xlwKP`SxdYd8>dk z!ng^V2TR~y3hs7PHO;rB1BIGvyOdj?af;3}E7S;tY<^$e#4-S!rxerK)nb|u3AvQ1 zq8qLDThe1x5Y!ry&1#8X{sYFoye!*I@Q>k8R9RWyf{mWX!NzRgv{A2sX``iCq<4)R zx^K_ZapviP5vIrzIZt;Ap=l3P)?zcC$onijT>cQTv1&L|Xa34^`h`NG(U815?*z1~ zVQF%W@!}a>&5F;XV-8`zN2cz@!l9Ec7KNUJU7`X&jMUkIa|3sRgFRn76KO8kH)nF) zo=jVJ$E$aO%UQJwF6SZV(OZ}~^8#Ggu9kbDo-q^-FVhwOM<;Z3u%=IEMGALcTs7D- zhGh9kIiUbvX3}%^G3a0MYKSl~VuCCJ&1aH`1FB+3b!s)Z)C?}5I&o6LsOZVhB?NLU z#Y<=MWA~a=qN5XL-K#xvzE_#x#0x7#8}v);gcX8WKR;U@N1t3*IzIW!!KVuFo(`y# z+j&!ZnKZ-XlD@J9_t@j5Z5Dr+V-5RXu-ozoI5^=lnM=pi`+tm^fgBuJ2pl* zYb^K^{6y#-WV?o9IGKKh2mcTfmlGm&nHV@tqPJ=Ss-9c(L?s6|8<^SZ38@Q`mw?#NPqQXtA9&7V>*8k$eMQ|pGUqQ=?XKm3S} z7}SW~&Az3shL0L*C5Js5bUO}*_7!+HI{0wnJUA#hnQysbmb`yaE{>!4`Zw3#A5)l~ z2zqV&lq@1lc%`30Vux27x+s(GwpP6BDj8Ppg4y0e(kCgou$vYWz}*BX(DTM9}2 z5SFT>B^B2l%}>WbeadUWYny-DT(CNSR~41h8$bA5UAXnZi2O;2jy*(Kooc|&sj=0P zL+bx6WbYeQkW5-(UX-=}aedWmS%XbsOq;~yjrcV=RTKTTcqZMYj}tn{#a4R1v=dDC z^e#w_^iYiZ)tVUgCh``FbaxW17|n8w7X$MfcuP-^5nOL3WVtm?X~ad-C*B~uJzUfM zT2fPw6ZQ&Eb?DY1hIz1+BA=&P3A9nzA7|LL$j9g!GIPRgMP$mXMhiCT3de-bZam|6 z>_*-T4U1F0qfxH^#VbnY9CK)HW?5uXXt0QEZZWBpoK~iiuC9zf@#4=3?~rJ&AZ7q;9h_oB-4xSh^y&kGL4H7)ZHUEttdod#X5b!!g?u){t?Qy~4l zwceFjG(DLFZQSw5Fk+6P%j_9s+oc52scf%2G|Tr^8hb-*8fJ*h+aAb)3G zJ-(*&6}}<803Pj7TBGOU;x7PvLJMy5s0EMmUrGI4V=kYRObM-Rt8Nv#@K(F_b;X4Y z&wx4y1Lg{}DVaZ&XnOU9sP*okQ%5n|w2y84>uf`p=)Qy-LmLa{k$}0D7bo2D$Z56g zRGDT$$~@_WimGMz7Mn##K_o9M`HmPnScSr?y1QU`Y4-ZAt~<^M`^jOBV_X&!(S-mVu$ptovXE|Yp z_=4=>ld#^aS4-zO64FF_RwBpCe8}QU{ismAjX?giVHo+Q8i&p*ebs&Ws@P&nD^zeb z#{$b_bjORbA@9?$3r7>3@m0sG9`#Bz1bpu%9&O&Ce3p8Jx4W#nF2y-XwuOYY3EWh* z{D?L!is+>DQ$C~ZQ8&e9U&p$Sm%GF&Tqx19hj?wC^m~)4lgIjVAxFuf^Ltv+ki>fI zd;G`!#YnQuSPc)X-EG}aY~9Y7Tz=PTRIR_ZYlo9_CX{PF%2P92kiw-- zhhCvHRZMlTp0>?4k)-Y#x_50jH`Gnl%m>K}-kGzLUhN%h)7^@Gy{u(jl6349cvkNs zg`M+~Ve-1$ETNV4WRr+z--s;+QKbakvuob|?g`S0dUmaU2rF#Yf2WNYs9wq%wyz2c z^3AvJ*yyb6yfKqz@%OSNCWJgxYW3y1aUpVbeAgx|35XP3y=nI5a9} za>D#0n&}yn`1DLZ^YG&APRp4U`heDe#^`QD1hZGblV{!C@zlwMV6@A}b9ADZVvcd~ z#ou}=*~1&|9WW;6v@+6BYTb*QvndTt5;z@^UwkqmT4-qJ2H_v_dbYc}u4da~gp@0y z94G0e+B6+l1{?n+EJ`7jpWNu`lv6t2`8sh zA5+#e#(lnRZN)UU-y31m#bs>YmwTO|<0NG2G3OUK)a&}-d}zHuwU=$;Cb4Vap$LgV zwe=1j`=#wCwPovusRZt1MZt`r-CYJaRBed+QS~oEdb@&*CF9rMuokJ(->#L<|Do<7BKsuL;*XR|4*57G0h%UtlN+L}}gPD&dnkBVt5mbw^h*IO8 zlkRegIl-2rjHb;q{nNLT`(RIZ4xOjgEq#$!r9~dUT-g9LSY7dR%zihJ%pbz?%1y3s zi8f*bk5hGRtBuR-(#@dl-LH4!>WBQOV))FWMAYU8n_Ma4@OG+R4rON^X+yiFVt0YN z!!#eR(!I;s3k&yVjCJoq7oFQoKl(XOn@aiN*awy*%byzYDc5*+ewB6is|2pXu3kiX zCHfk830CeOecRb}YMDe_hLJ!UU#VT1z2ym=zr}=i9%ly>DZK=W-|($YV4envoo2o4 zk+N3t#djNaLuNgG+3o^WAj&c7yLSHv;-3|nVkKY)ku;D|i>5<`R!nk+s|~+zmazH2 zVU1ft{B)mK0m8R)!^^os;<%IHH${tHl|YzKpW$VZ!!@O)-9#hzDxLvYc)-tXXSN$C z(%Kqb_U`4S#J+@n7zNe7$>}@$&#Q)2@g@BV67OcBIaDGcPm-O}f&L5-y-Ep+^TyqF z3N=w@5yzdQuix=pP*9U|(n*7^o2rZMXAA1~GF{$So)!)!U$0Vh&8m2>Y!$KZZ852T z*mXvZ`0^qCdLy}bKAp^O+u|WGmnd}&0}I;@HhPATp<5X#M4Lv~i?ifORokd10pIO$ z`afibrWeo1NV~Yq1nD)@OHuyBqf}rwCk{o(#B^Bu0}zK72Y9gitQ#tn$jhTL%7@m&++5%vKPN6V}~}*fd^1MziQ)| zg@JvP;CO0@BDZ-|oP@Y~@Rc=780RmKajiBtO*NrSwJc|=_3yWdb2>QeZn#Rgd|Mnockz|l0Ik@<0yzJ7gG<}E}G7;Id#219^YrOuf`kLXvMw|B@j%_mf@J9ltG?+hvQq3my3v|hkJf@|94}R#^ zEK-80jXNBF;bjqG>(TsRK%M#R6wFPO)Qyu6$;X{eh<{#*>dYnhmUf0{$C9jtx-B{4jH)!mOhThAM++)S(^eV! zalhfwIZ`$HZk-6W>GU#%_ z;xi}b;l4>VDYXS*iZQZrH{+kiugzVRY*YRtLe;=Cq__#R@VPg?I_yWF&Setjz0s8}bRmPlU5l;b- zYv)JtUq&&a|Bc}~yQFd+{iS$#Q;TFxjo=v@H8T=}Mf3-zjssAB3VoUQE z+V>{!*ID19xEF=CZcjd}VDMkgH-`gIk(b!e{U|_%YU-Uq2hxucN z(l1j>Q`{q9kBy_`8Dl0n+jSLO5vvdSApjHIw~2N4(Uzz}549|G)Ut6o$YrhmT=y{xp-(I( zEw{2@iuoA#4{m1luEE1KdZsZs;2};`)Z>Cobm_pTch3NTi)K&o4>3(29ow^`MRNWS zl`C6Las&Z-`8`ZUv$q?tiq~)IyXsFV{;b;~w5XR#E|Z`k`l0l^aa+8(Uc6yg*g_4p zMduU9xJGg+inL&wZ?BHnGWjcm7s9y7Q7jK@T@%H?pjC5HW0n-iIp9Escry|P2DY{% z+(LnMeuR8CD(FqO5@=!35uO|=GLUvoB-6u6o5Jo|w0#l|LMDRhrGtaapKMKTht@dcDSDI}2!exG5z3hXJm za2wR)Ht6C`N>)nwho=>QK9QPYa`6P`l+p#v*B;+j?BSWKmE{IDbzuLFWV-Ty;8JwQ z;nClH*ZmW7j-BBQhYOXt!=9-Dzh~ucQ#}7$?}W)Ti*(g~5_BH6z~gh;LEz`kppda$ z!qA6q=WaRSp})DE;g^svLOao0)&p6jiLMWe$4e?k< zQuKIF(_}2bk`|_3Wj6hyZa)&*p!{(lXoU2dl}+ot7ocUV(zUzFYOe%Y!L7C!@%feJ zi}+PcX&7W;aWn0z@HWD8OKeEQcdpX903~2IVOpWE|z=S_F$9(>3$s_LFj zg8AOyuw(3fSD60OMA+NY6L-135Z-WZmw|hUowJyOd<@Y$( z5&1mgTc{V{D&kF5nhCKL=5Vm1$swI43O`DnpMuyeeO%u`E8ZG!XZH3u+@ei&#ejG1 znICzy0J!LOElv_Ej8(>!W?NgshE7FJ*BE1bOg9)r{u}LbR@}%Z|BMM(Wl7wn-J(CD z2??k6k`~b?+pc$!IKdhw!GymCp^BYemxMSSAa$v<;I%Na%n)zv{VRK%LwXT+lnEfE z%QlZh%Ngpcbn75$B?ZB+hnj38D9ngsRHF48Nt~EpkYD#xG#G7OsS2D^-o4nJ8I_~W z5;vF1(OW@=-v#r{m=_U(b|~`NO%v&`-#aUOl8eOzg|I8y=bh~5jKr0|+Ld*(`mvfa z=?c+OywBi=p7a}$W4(g?Y~)Lwtw3Js!FDoirza_lZ4fr;9#M4@_&eJQX}^!1cY9HH z@dYXp;@BQ*R3^mp4kwtg zj+_`5?KuNuCerRME5&UmcQp>M-{A<_c@{N%x~u;}w2|nQ)L99R_m`VfZ+lge_o6Xm z<6ctgPHI$Ug6pr>!7Gc;Ks>&2ZVmH_VmTP1MdTjL8FR(&ImGNfKIR&I=FVC2lk7PnswC0hw3G~UtJ!XpUX?svIFpZpP$GEUtYbNbw^wOAa< z<)B>8c4m#4w_F*V?B_-ljTvVzS^#gam;Ghy3ASHQx__etE^U%spnl_-dJIn?wdFq-T2&ASe3V0Uj-aX&w_#^O<8eqY=Wis-* z5)2cRVx|2|mW-g6ug_YK;pFO^56YVq+~gD7flAyD-?Y}V%424!FpQ7@0n*^t zj5X?R5jjbMsQA^4@2g`Qdps`U^nHLz;#R4R<8WJ4Lj1z(R4Kzdz^!w1uFPqr5ne0} z^)Y87!GK+~f$YlLt=H0b!9FdC?Bj7Qwxnz+{(-QE!+&1gavk0Bl>!MM`{`}s5myh^ zwQdA{>a9z&NhfvO_k=((N%9u!B-%#JeJGuM!QedfG00Dt1`)-=B~Xz0ilHZCbsCr? zs$TPOaA~BGf*7K|I0G9S|G4=y6}nl~jF727GijUE)T6@mCpg>VJEef5Gdf zUg70eYPhXoN1V$~gD|h8+l@V?6}V^Jp|+)=ePxj3XEsbn~7oea+YuZzGzRE$dk7NW5}86FXd1$8fFiZjOL-ma9Fs)77p*ep=HKCE(AoeOUSMUO+F4 z;w2^ai!lM)M%Yp)_1Ab-pJ3*+YY`Vpx#KZ7MFa*<3+4ff>-;@EEK=-J@cTyd?%n|Z!^c%Ooq zjm9rt6Yt@Tg==5rFCN7;p@;l5@0xxmNA zmo}an5U_A)uQS5{Bu>Bdq48)T+qMB+qd+5bUv={f_wc zk8uu_Nh8Y;E}1fUjb=Nwk!ju2Q*wy{(AVZNH`{d9gXAnxTegYo#7;epHbN&eps)-; z-ck1ZW)}N8-5DNnT$Zw^W6^1^&p8h?OY*C;`C`9LWxe1N$E|)gRcj?V_?$9#88cY9 z!!$1ZfIy*-Mf{MqMA>}V=I>Y`qKY|OddHWEjaH3&Ah=uTnM1d_DgJMB^~9qd{guT)kBsX} z-}oed6_eVYKl3HI{Nc@lQ?7lFOgjPy^#176bm5Y?=w>ZH&9~qCt!X4R1p4%~RxlEm zZ-|#)3f?G7{8*;FlQ-}S-Vd`_+_GRMw`MNwb^+!K_i|~VK@$m*DDI>|x>i1hDq0H7 zsX2G=SykO=WurRM-VD#^^5-@7Z^jvQNSJa3seHrE>j9?YofZ!q4#nDR7*&&|@UfDo zJCuZQUwd{FmyBrel20?MK9Yrnj7|yv;>|3E0_H00G*KYP<`)tgY zN-hmgPREH3ve(~wc{999t=TWeLS%NazitX6MJ(s8FEZhrr2Ot!~5Bmolqf~fTYmvybQ@Twx$GCr4IVD*W zn|3@J>bz6LnGT0K8BA_OO@>fWkQ5R%0T))&^F1p8E_mvEvn(_{83-!uL3(UI#;bXJTXf<8RR@5 zd+#&jtHK&n3Y$Sbg&@7#sJGXDq%>y~^*FgiE(H$7RqP7cqAk@l zlIkC+Z3Dh@%)#@dX}}zKaG{KCewu)(!rgMk1RYb#t<_Vzjee5*5#Lju^x7&nq2#Xu zxfnOwUB@wD>xHm5N2CibWNb+MBUvD zj!**xpc~9~-R~#tj2d*e0j|pQ&&*av^$*KjkO$V-+J)}M(E~OxEaI$wemJgzhYQ3W z<9EGcZ>nzZHkfDn3$(cVc15QP_nx^GPM;`UW1m+8Klb5zuIT8Q_ztw({BtVU^DXD2 zm=1p&zm^GjiVPV>?uN^`a!%sL2t8{lW(HgeIu7Ha@Z`oKNY?Z{d9aMyg-Qvve1ww@ zTROnS!ppursnITxnlW*!;TwS2LawY5E1e^`h;}_a1ZcU{s@$r5(J*2%Hsi^af+)9| zP{fF9&8d0y6w<|Kt9 z`KPXf92u3iW29O^@|9$$)?WpcpxvB`pLV%CLs+C_&PFCYyqN{1@ zb*zRZp3wpD`sWOcC!_Bxk#wE^!Z9<~2j)Z#fBEhI zwD+B1O>Nz}D%*;{cB7!7eO3enL?E;PTT~RJNSCf4y-5#UMMT7af`C#*1f)yvAR?jn z-hvS6HBv$icP!ZZoU7-#&vSp?AD3SVSy@?Y%sEGS-*?PqP8=jhWH%-&IkMjpl!Xw3 z_wT0O+#A=xJ_Bp%Qb|R5u5lfXoi?A*Us&i?ABRA6_WOB*pKb(`BRIz7hKaBXbuHLF z6BI5#^iH2^b(BzRPOw5rauz?doy{MDJ$^7rd5bDVhT9Kz(G89&2|-FJ#=xy1q+o{T zHl6sX^%YCBim1ZF+4)y8`vMycW9m)?R>dhl4~qoz$Z<=qI;vdn!{> zno1EEbs-iM@AKtQPCI}HTRLpp)cj|x?O#F=y-Xp0NmH+5wF== zRKDUjYfw17;X8O@Q4;wLd2)D%JqSyIVI}D>@el6u?z=M63^T=ywV`m zG*mGQTs!{wonUnFC(qYUIw-Zx-t3cL`wM#Qwz3ah5qojs7`>XxbFVwMXg(i^1FG76 z)u}jRX$v0I==@Q`jOT{++=H>j;>>1|mEE;0tJW{BWnt-lqnFKiD8qNMKbu3qae(6+ z1v(5Y^$w`!@oER)gae%k36x@KDk!!&;y1`6eYqRnu$4WsPRM6IE^9m4T;7av@de&= zkuO9g!4Qi&I&EIEt$8Uvv?8f@lI%t3`v{&a!t|}=-_l-}R~z#HMl*$Ok$~*3y71Du zjk~ZDxS@U5{gpSWW#-aSM0u%PQZfrmOb@~CSyz+m{}PX_*apP=(hU3pz$=8$m< zc4S~7Rn*^4M(@4D!P495E--^r6LJWuc)Rr?lK{Au(3!Vkk`2&xv8GpLQ6#z6%lO8Q zczz1M{q`gkq9Q0Gy>$?mgTNYUC8il)epVow5KAV`4h1omMtpKr&3Gvu@{f_u8#&dy zp+>J1E|T|CaN9Q9y`y_|W7G==X#vljKg*e6Ja%S(A6DZ+nL2FhY)ACSo#GV8)$@-J zl7l|Qtf)b4f%7kb zUj+yv)z|6j;vm~@f8`8x?V`WcvRO?UdGZN+Ch4uD(+VTN2QRr3DQRE+q-0IyhR2or z1awT2DRw;Vupm8jM(yP7(Q^CdRftATj_ytV#=Y3D7+NhZtF(<0d-u@}mvJ|+*+-_V zu=qRmGRTCRTV=pgx56fmvTbcMldDlrI-8a)IVKV3RzpdBW=rP&fZOjDbB9?ZsJ+` zYr+jf6w^F=N^Ywlr3v4!M<4^=OJ6&W&|m;ZzMd?~qtNwfz`C)jvb5HTX+V`VvqQz4N@bWp=R6wbItbvWs>nYhApc=MurS;lq$8eA0DFvWPu3{}Obd_~R2&QmJ4 z8j5d@=b#DG-=nG~vg0RIbhF*DN902`^sm#SS*Kq($1)+Xk+z?Bkeju3;?O#V$%fCa zJ;*iba>BRl<<+>+3Ef$c|A@F26O>%IJ?eJr$2WGP(*iv`4hQ4BE{-{iE#Z1~@}~Qz z9&HuEAiNFY+_*nr8*fUKr?_Ky7Ul}+eT>H=1i_}0m+<&PX$8%~&NcEBEzAqT^#@+` z=)Y20VlHKcSxC^H+9m1qoSoi6Updw6*&zqy+KI%~&fUNKvNp0@!yNC!U+7`coltaRePCULNVxsBB z_!&?Fr32>a%42V29(92lQ;6@sHC_BA$fI*;sj2-7J<5hJc3D!#ToxA=Ia52cZ`4Cj zcYny>6=NdEBJ9nhCGUk_u*6)r+Xop2nw4qgz$V{8SMRy;UTofy7{YJg&*@a$*s>{aQOMI)N=Ikt*h4^6Gwtq%^sZ1N}o|9&yw*HoWRA9#-QlVP#@_yXcL; zom!p>QE4zqQ|iMq$t(}uHMJ=jUG)u9S<&%vigKXjj>vW|moh8mo~-8-h|W;8a&Rkp zwo`SN30mbZN3OM+o`0uoRWf9S)@6?p(2~D!0>yiWL#RkswD{-Z8D@ZU^(_<3+?TFz z4S&&W&~xlJ?Wh%GjnFujmQf4P=HO4w6DS*NYiuDl2Hsp`h6M48+Tag__$io(C!6-1k*wCyAxNoS2oL4ZyhjVKLB*OWuZ z3DkV}hSkl*45jM;E-iOVXfza+9BKrd*-2sR9XroBM^^p%5v);+t+%MrHJp^7$}e8cC8r5A)o@hCAi;uHv0v&m-zOSE*_qn z^GHTHzNqT(kK+Y`FvdS?<8z3%E+j$eJ^fhIGkh0Jc(ALOS+Ml5T>iYeBME0t*DXxDwo&GmrK@~hf1Kzq28ja z1N_XH&)%jbEaH|Ra;7Kt9yIzhN4iwheeiB9(Evpr0XFgSM-T_F#g?Rki&4%!HcaAi zpu#0;#A$2ZDY0%3Qg!`2Z1#1hd{;5&SBtGkc$j8fEcxE1c}ycafRVnmVjo|7V#-zg#12m^oK{@PAa76k4a zB$<~+-wD$gUU&&;YoXObRnd`W8^zCzCj%})kw^;ZRBVoJ!Do++zz7=WCmLR>CmluD z1|V(nBbmoF*n!%}GQmOKGJjJy-K_5AfYKs7)S@&~-aHvs-GeX=Z5$T;hV~qj(YBxx za}p@EK|mTd6_IH%Mt&q_C5*r078;?yRvcAw6K0=F%#zVc?c4Lf6rSwF&U)JOxNCzj z^Ne#b6{UDdXBA`;M_>P>1%E%|gd1X>JGrYU;mD0jYrVH2xhAgh>`JrTwn0S(skQB; zigD!$bo7(9>5_=1b5WBe>rgBuvLj^+Q$KGX88JG zAw6e)MBA4*+&C+l&!e705|$ND;Z024X1Z7K$3b70;{zjvyJ2QR2!&e4*Q}yEq@N6x znk_G!JkJg^Az$$+j;MT0oZ@IEzIfC{&m6aXg-881rvO2Bo@ih(rGF>61bZ?&p}ju0;B0DW^SZ`YX2}ypa=h{V?N;kpSdy~Wj~_R(_HepQe((>#lDn9!{}B+e~g=_N3&s%4W^r`(1j6{=%rij z(R!{igo-rRjd=2vlGN#>%gP~6vt5+4Kc(sFOa2yVVB@z3;0Me0`Iu~AMCa2v?f^VK zc_wK)z~N)5i7e00gBJ}_WawWrl~xI#RzEwCz5GoRH(C56(8DpcTEC1|hjC2);kP&1 zzH_zuFEOt+`xQM3j(c46$gb@aGwO>R5w^G3+#7tKO-(Ck#4`SZ6~>rr>seQv@H6P3 z{kFT{W#>*!w8{p1wFfd7-sm&7WOWtXniAEsXf>>Q7wmOlT{*R8KWoH%7Zu7YN4^a! zmqpmLQv>zKs;ptzXL=oH57$f3_&o`Pg>JK2x4{a|xqDnZ2yYlST{tCuSWOm|^o4HK z-sclf(X95pR)|Kp^bt<-i|M=ps}EjmUT2O@ZJ##nhOyIN@l~Yq$z6(Nzb5=b2Fl4u z`%7r{Vq?bxQ0lILzGYnV?iS{U|MS^fAeAbLH8VL|@dE+A+1AH@08L%|X)=1h`DJFp zVkwkVXo6J3ca2iRzln{H9^TW=Gl4^4@It?FkI@N`kS5})H7+B=9qwAi_7JrT zFT62#xGCB0ew%XYK$2@j-l+&)hSGP>>Y{W9D;5;%V}02kF8UfR(f6aGDCHWPIiyg7 zEcu#upGj|h?kW_L%7k2;jjX3s)U2H8bb~qgA?_#cUEX%rH6Fm`D%?C&a@MRwL&fb* zbe6VWu@vz}2ahJE5c1zSB+x5suV|K6^9{@TfwzJH5wqTCHTLZ1CVM9Tw(al|WKqv&}i0BSjosDM@w~)NPaE z#>*o}gJJtgXQMcv1Hbg(4KZu-ATt7TdYz*(hzqwbAhdX}=YbcrT(%JzN`74#aL zSzqykSE;)Rq?~_i+EP)>)eteyO9OA7N zW?V_~FbnV_&xG`BT6CXd?wFR4W3|%=zBZ-_-z-2a^3_NT&|q}~@+y_W+1)Hc&+D!M z(C~fAuJ1-_I!&VwFAlo4M5o!hQ5}8e_PA}1ckHrd-Dy|E}s8}J=EbHm~Wvbdai0!fk9O-E5Sx+JYex5wAmxs!@1 zjz0LsH$k!HE5rv5@~cG5q0~B9+g_T};yu!Wdb#ZdlOjte#m$JBht*Werfw!XqjKgx z0&KPFbUByzA~zB{utdIhu5wUuTE%d~)$naig3pqy%d?-ZN?>*Bh~32hs)G=$mimQX1ye3%&%S zp@yq-j7EtZ0TRLOL@PYeQIIt|WDzoC@u3KHugHzdL(-uL7+H;16RsOv1KVB3;SE!h zfLm;<6Rf;bQB}286K};ari36lO{!t8C}~YV z!MUY;jIR~$H##HL&M%drQ$Z!2)Fc+>lXC9v4CG!H1g6X;UFC~O>y;HosN*!T24<8lccePhuv@gowarZCb)X=lw0Q=it<}T+65_Fr>JO| z6b_i;#~gxs+1g%=MTmZ;YNC?ze!3?8!;YAN@r)4IirBzSs*aT2%}+{`XIY^*a@OS> z-|JoljVw}Z6~UF&9y4B_?;Wp{syE*3d|7D$F zkdZeKJOR3|rS!V)8b9ljVak4-I#NZToF;@@Gb*%1uTO)zpj(`2>6jDI<` zC{+uWR!j#o3n#QDlf=>2{2`eu2;cFBV=WgxD5uh86oef|+2ot_@apK@xCHu|`r5K! z=Cn9u71`1jZ1D}&sJr#ZXylMUlRHA^#5?lF)rU4rUox{1&E8*6Pe z7s$)U=_2Ysv3=*az$hkNq(S7i>z!JWRWNjllm(+Y3bp7QDI0A9>smcPXW zl7V2$8tbD>$;QYcBVW1F zoqFD7o1#i&B$KyKn0C*R%lWxxb55m9x3r*rQIrTMeUVcl(p*&?$CtXw>Ojv%#Lu`*wC z?KaKt1^`NkZ(QLtv7OflTgDj%OMz79$&|JT}WzJEp=>@LpEy0p2WThJqBF48h%w!V2N)LCfzh4iAC zcqGQJ4gZM}|A{05iM^5CCmQQiGu-*`l zgb8f)(|p(=POZ7G|E+%)O9WT6ppQVCkt`5EdHOeIp>}zvSg>|hvTrt*_Z0{;=7TIe ze~RA_q4tA#t}T<){bm?fZD~Xn(nqAn^5kr(>;|^D3wHyO(X0{9uj7?(lSj^GVyDfp zf9yxh*@t!8*vQOijbsur#i-2^=A6dFaiZ3dg+`Pbm4Eo$L3xuG@a=KW5ZTvLw9g0z zh8*hdry2(B6KzCP=t?KoOe<7OmvTlmv-|Unl6m*_7SA1LT9NDu9+itro4j}9nGh>| zvH+mDDS{>mu}dR%-0$K5@gs<5l$C1dEQF;%6kqdfCkT!hNB0Uuiv*ADQ|yBt1nIfs zoQKrvz^WT72?I9+1qsc0j`!0GtZvtumgvQ^=j1NDvGd($qe?V$Ikd`QiZK>s`Ji-j zJkqf0jo(DkBP(I%q8F35(;cBzOkFvAuD-2GS2hrw7o$#`4H#?xsv6!1OAP6w0obj! z^cJ)cE;g+h++GQ;(0h)kUgmY>$YKecdd<)*;n?if*_>h~K%lTVP{>H$>vl}5!%cVe zq0K5!5fHDI(2x?L(q*hTnHa&mGF&H+B_=XnT(jvhUn!+x2HogAL0AuF24jCmY#2}k*k+7r0?=bhY^bFah+hS+y&>few0ZVK zX0Dx3kffN2E!_n-H{fH-nww~OnVIsS7sfjv?!9CF$^9@p{hJg6tDvIiVp?GP3UHg` zEQ6NwNP&M`zQ7xFw6IrSV{@g11y7Z$;<9X$Q~5aO*xWjc@07JFvGj#`-{_`;0P6;m z%kixCPekd9nbb|4LVWqpl~O8P`GeV(kpS z7hVUD;lNim#=CzyicT>rw9@=? zafJN|40Yz{!7_GoN#Ikyk0ink!c(r;*YvHDb>k;Yda<`NH6~qk<{wP)S^q2!pQ{OX zBJ%lZJz`*qYEC3I_%X&COW%LdsG5H4cK4Ivp8;o!a~Rw%F~dv<$p2hXE|kc)Q?W=; zX*dS~hVNc@yk<6eX6WIjd=d!?mHDnmAh>j4JXPx9l}y;F51lXgp57oT*_?q6ppk)} zCm(X&I{-`D3JLr3jQwM8BwX!Dhag{J{X<&c5S>LTDEyuyakNNZdeffNV$NyabgpMR zO7Us5Z>h$hb~!+yomdlQrebk`kYtf6`>EU2R$6oYK0r z8W!}pTZtU^eMNp~Or-iqny^pd6yNMh!tyN1s3W!%1W0PEsC0ijB1=O_dMvk)UAl|< z@gta_R78}U>~spMTQZ?>0#Gu#kl(iVQqJ&PBqC*CuIQ9nr zM`bRj3ThjbmriXT47>u5rJJLXuT^wQsc9T<#~RXci&}?%$S?Lb+qx(EPdnVH8X+~__QzWX zy%nxym2Je(^n0Q6q?^3tyUb16Y-sqQ6w90-r%u#t-ZL_EJ@L9!&{}FzItt{g=5Z3P zS|~+kiQx|EKI4F|6Z#kLBql)KmjB+A!-Um}|Jt+tgdXR0vtyrrPA-8 zob~jp?GQV${!+r0S;Z8i6%&i ziZ=`$5rMY&#;IB6fFG25tCGP;he2%C-U#~|5krKtW3u5+nrx%p-)>z(dAJ(U2rbW+ zCAT_P>ve8~>7Zfyzr7+ud88=_Y@cC$WIOC5un}XIHcgP%at0YPlis2#mCgM3rufBl zBOFe{a#F%D?%oP6pAGw>JAB30J0<#9U==;Pl17G4<{(`vB*)d!8td_GOQ^t1<3R)h zy3<9nx_bQnyKxT%*qPH8AMq;x^NnI!T%rY(68q+jIaM}!k`t^PcMK5v=jD=f$5M=Kz0%vl!S?5TkuA4@HxFHcNGGX1zEJ?TM#1#sKE zXB2#HAE8;|nd@r9I&U42oN&TJI+dU9egJMha}u=gh3TsWKDE7eAa)qR9J*+=0qs8Y zXnl~56%)D}Gg*(s*o3kkB(%WJ%(0{kt!zsSX97*387c>%W7R*S;pY( zQs4=*kD#TboEKZJ^YdNMCdtz9BVu*r5x3HqueXotC3g z{{tvPfWm)-XLZxc<&sutkvqnq>kk7RflkwNJD=%?2MP4i*B0k?Z#GQ~UG~*j-?sX_ z%0GS4!PnE4GmN%tK$A&sd|ocBMD?8QBRx`*Oa%84O!ovn>Bo_1^C&p|SSWNH!C z!>--Z`Q*+%iX?bzIfITZH+<35QY+$|)vzDJUaDA?3|f;9PQ$aPGfAcfr{?mSWuP7; zXI>_+kg0h3?Ch>_DcskSc1HEj3kC7iFf((NKK-lS|@r=0TWoH&Y_FR>rCYKV1RS7@1WVEfa@v|Q+DhrNY-gjm~tc&O( zM2j{enC3jCoaDN4!;}`6?~CVeQg?mb#ez~K-fExoSO^!-UML)VRQ*qz(S^H&csc=4 zOurpMpB;PP^3~UYj=YkE%i~Zho0Z*itJ<#maPut)WE$i(o+3n)B`cQPZ+13>k)p5V zZ0VWpy6TwtCA=2N%ja*_ubkUZhJ|sd_b9}uCb5@Ze>3DpH6zoUZsWPGIDhf7bLRJX zCwg2FA8I~-)=}M=w7!~Qp=e7yj2djx5_KQ`9?43B*0rz5%?m%$RZP@bKo?ehRD^a> zAInWX`Up@eEk{_ceM;ZD#o}{vR@Byd!Aoy7Y7E4n^<#15 zmhE)0iuqMvx613>+!Eq}T_Cb8o_8yXyi2EXrmmUu&-bL9W*M^*bsMtP0-6Rk{SG}g zWzD@JtnB2lE*p~>b9kqca`!ao>=H`x<>`Y)g0}#`GFoO^dR1{%b?reGw()PlyFJiI?iJ-gXrhb8W_snvcAg)Ijd@6cw zWL2>l8dG#_MG#CSNN(Yv++JW`3=o#6S{qe*8tdE=*u|NW)WZ@(44b7vVe4?@#6bti z?*mPVYB7n4QyoIl_bxNzr$^&IZim_g<0F0!ELriK+a$S~B@4MG$)fA(aN`$IUS|2Q z5p8X*LuIj3vyJCpeXfkopVM!5+$IiIul~n00W4^&ZdOkpH<6mQB8O!J^_hgYO;=qtWDd1iYcH5TkC^C^JbbORU9Kf*F_Sp&(1-8_tS2z={fN z(pgTG>f4v(!b#j$&eQ37#CyRY?o33zP5Xk{MT|;_S?Rir$cy5^Vfiz6|-)S(~3R0 zHrSfKirE;<8yD{g%E_y?}}57ahi7U$z` zQ`h`Uw%mP4@ziT2e zp~cyv!bY8HTWbYK`)zCS)ohW?L_xdzVopQB(f-HtvOBT4@uQm5yBBwSC*9qB{k>jH+J4WGW6aFs=J>(wA_)u{BvLc&Cbl&efK4E_cnIl3GWJ8|2eSw!2kcT z|8K_s!vwi()TzLAr&iOhb?xcA8FpOni)($kOQS{6lxF!P{~*m>h$izRb2zygU0Fsg z-0;I1URZ_;z5h4gR;KmZX3|e;6?ZBQrmyi5Ap^qw?3F%8mo%?b8S)gd4%U=YZ9Mon^A`Oae z&mIMaf7gc`)a}*}zV64Z54!jU$%SATd;ffJk0ucRo%O?Y`t;y%gQ*d zym066H3gR@QHJ@0sksXNUUbJ}NqhEu-xcM;Re$;8XWBa4HFZfZ@MHCJovG1cOTV2> zr+2V#e|PwwSU^kBjJjNAjqiNH!95E0`FBkla^y!aMy42iH!~}-ZyGJ$JDt7Iv{7Ip z$TCp#lp%-^rc~|yz3V)g6DL}Tr@xZX(Un6@{p-C=0N!ZrDir@1WGNb$X=)k$0`&>n z^-U=@X!&fg?tDWtMA9~e$1)k(*P9s3A1MEGIOBoyk;B}?RpA7==L}K8fls>VY&0Lx zcMC6DNBlN6o;Dw>c^0J61efk9bqNC7RR7W7&hIoCGP$Ilk^s>)Z`>Vo1hUV5wXlG= z-IKom-kRtR=aNGrd>be(rSaTww%&2)PEU z2ZFYSzdy6_qDCMbAh9W*55Gr7{m^bC*|X>GZ1&SYD4G$i#_2ctq@Q=afb`-&_eKNX z?fLbzIZ4j_fMDBKny?=A-MoLmg(0sUblxDQd_AG{+c}v`_@F0WG@|#S*Gt>YkW0`o ze%Jol*5q#n8dK{)4(n9#m&6MLq4B{2>6`^3Ym<*C1)=fFu^r4GSy51IEj+QnL34ZH zlV|5cBiEiH%&?b87*GoII2fm!&;K1J)SG_!KF7AqQ6k(AwZxT z|7Lb9Be?~(e@L$W#&(${PzotxPv*`Z`R#0XJlEI!pLAWLkX^xunyW^OeNK;m~|tj&LyPiPI(o%|mo$KZq%DVkVc7#4=$onax_{5<$_|F5@? zYG8Nwn!8lrXhc5X^~C{m$U4gQQe9*F=P1d0mwubu_qZ4nq2L{i-pi!L$wccru3L}r z%?fL4|8pXK$o&hf`fchwOhmOlWb)dEy>yXd`)%rc+F5{xjq+Q^Tqvi1KQ< zyW^vu?&OzXllP5kfk`kf$xGxWEYt+cr?61V>_XwE^QfQcUV8ECin0Q>Uu2i< zcafLY<(3gY+;7$`lh|cOs(wlRt1ZJz{aj4@JW$m^=NXBCd{PBk!o<5DblC%x6!G-G z&CTq$Kk1J%-yVAnWJmO z3t7>$EPq5>0=aH|^qDl}-ESiW^L^3Gxq#FIqbq&BTjBH?-@*f?=1(_c{C_)l^+Vy3 z@u89FxrfA4AucOYQh#CNnCA1m+IxbrZaZgH{x9dx(VZF-`xrTG$#Y?RnNY^yeA>r- zzEn02pzu%Gtf2pG$#_~!{>g^@NTOhRo>aZTEgkTnU|lMQThwIroic*IFtuV+sn&=% zfCN(wuUe0_LX^KO|6jibx)zBey=qX%Q>X91?Lih~Hwc)^2fR(w3f?T~FIvCKVH(5+ zO675g2mH3G4b4`Hx-rJw2q--MlP2b0Pww_01*j$<$FcXnf; zcw9O3>*U0%&F0V=vHFRQo<5u?8nZ8>&+O+s&h}RWUVf~V=vY}S0&3J@eq3pYzx1y| z@m4Nz$nAtK4JL7$SmX8j7bW9w;f<^pgyh`*8{1>L1{`l1t390S#=TSx`e7Ua= zm*d=`Z!iZ+^^^B$llQ5wNJ2*u0Y5N3`6}-1%g)q8og`~~clAP9_v?NqjV9vMCg6q;QP+5PDIEmCg+ zb$QQrzCL^Yv2U06{IS^F_eG+A;j8_v@HoyrL2ViEwY$l^c{0B6;*KEaAlk^N%bY;J5b3b=(q5XMz`RKe#x( z;DHm}dok9lSp-?aqY9Mq_!JsGduA4dYl(svM_W!ZeYAjsPQK?uD+s}_Jxn(4F&%`Q z>Wd8Op8e7hIEdE5wXs7RUI@Q$71Zb52d4}h>*6eh()SS#rDd@!3ZGHZ{2Y&o)5E_q z!qqg|-Qb+7*Sx2~T@j;|3&iuJkHgs)THT9YOYDa*UKK7U)M)}omB{f=?p?nQUt}~z z!6qn2;V5C6*suv9_~L-N_dnG?y!pTQD=1*=?!Y#ssh(&+j+VKha6Mh>-jn|Y4=2_w literal 0 HcmV?d00001 diff --git a/front/public/background.webp b/front/public/background.webp new file mode 100644 index 0000000000000000000000000000000000000000..39631c2c6754f92f1fac1ca30291c38d74739ae0 GIT binary patch literal 17178 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%0D1z+1cL|1UC6P| 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

xQAK+=3~o;LwzL^maU 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

>_9%yI1H2jws_ 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

47SLZu=By!*z(td*9nwi+MHN;Cs=-7r7zF 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 z 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 + + + + + + + + + + + + My Little Bar + + + +

+ + + diff --git a/front/public/logo192.png b/front/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..3d9f614358bb1c2ceae012a4214431bfc1531cb8 GIT binary patch literal 3186 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 literal 0 HcmV?d00001 diff --git a/front/public/logo512.png b/front/public/logo512.png new file mode 100644 index 0000000000000000000000000000000000000000..1d89a27123e7556900f82d6b705db1eefdba826a GIT binary patch literal 13956 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 literal 0 HcmV?d00001 diff --git a/front/public/manifest.json b/front/public/manifest.json new file mode 100644 index 0000000..a6714d1 --- /dev/null +++ b/front/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "MyBar", + "name": "My Little Bar", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/front/public/robots.txt b/front/public/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/front/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/front/src/Config.js b/front/src/Config.js new file mode 100644 index 0000000..ac5fbf2 --- /dev/null +++ b/front/src/Config.js @@ -0,0 +1,7 @@ +import {getSiteURL} from "./lib/getSiteUrl"; +import {LogLevel} from "./lib/Logger"; + +export const config = { + site: {name: 'Bar', description: '', themeColor: '#090a0b', url: getSiteURL()}, + logLevel: (process.env.NEXT_PUBLIC_LOG_LEVEL) ?? LogLevel.ALL, +}; diff --git a/front/src/Dockerfile b/front/src/Dockerfile new file mode 100644 index 0000000..f71f509 --- /dev/null +++ b/front/src/Dockerfile @@ -0,0 +1,5 @@ +FROM nginx:alpine as nginx +WORKDIR /app +COPY ../nginx.conf /etc/nginx/nginx.conf +EXPOSE 80 +CMD "nginx" "-g" "daemon off;" \ No newline at end of file diff --git a/front/src/app/App.js b/front/src/app/App.js new file mode 100644 index 0000000..3f99800 --- /dev/null +++ b/front/src/app/App.js @@ -0,0 +1,51 @@ +import {CssBaseline, GlobalStyles} from "@mui/material"; +import {LocalizationProvider} from "../components/core/LocalizationProvider"; +import {AuthProvider} from "../context/AuthContext"; +import {createTTheme} from "../styles/theme/create-theme"; +import {Experimental_CssVarsProvider as CssVarsProvider} from '@mui/material/styles'; +import {BrowserRouter as Router} from "react-router-dom"; +import {NavigationRoutes} from "./NavigationRoutes"; +import {SnackbarProvider} from 'notistack'; +import {UserProvider} from "../context/UserContext"; + +function App() { + const theme = createTTheme(); + + return ( + // Провайдер времени + + {/*Провайдер уведомлений*/} + + {/*Провайдер авторизации*/} + + {/*Провайдер пользователя*/} + + {/*Провайдер темы*/} + + + + {/*Маршрутизация*/} + + + + + + + + + ); +} + +export default App; diff --git a/front/src/app/HomeRedirect.js b/front/src/app/HomeRedirect.js new file mode 100644 index 0000000..4c5e970 --- /dev/null +++ b/front/src/app/HomeRedirect.js @@ -0,0 +1,10 @@ +import {paths} from "../path"; +import {Loading} from "../components/core/Loading"; + +export function HomeRedirect({auth}) { + const redirectPath = auth ? paths.dashboard.overview : paths.auth.signIn; + window.location.replace(redirectPath); + return ( + + ) +} \ No newline at end of file diff --git a/front/src/app/NavigationRoutes.js b/front/src/app/NavigationRoutes.js new file mode 100644 index 0000000..c2fdd7a --- /dev/null +++ b/front/src/app/NavigationRoutes.js @@ -0,0 +1,151 @@ +import {Route, Routes} from "react-router-dom"; +import {paths} from "../path"; +import {useAuth} from "../hooks/useAuth"; +import NotFoundPage from "./pages/notFound/NotFoundPage"; +import {UserLayout} from "./layout/UserLayout"; +import {HomeRedirect} from "./HomeRedirect"; +import {PublicLayout} from "./layout/PublicLayout"; +import QueuePage from "./pages/queue/QueuePage"; +import LoginPage from "./pages/auth/sign-in/loginPage"; +import {TelegramCode} from "./pages/auth/sign-in/telegram-code"; +import {IngredientsPage} from "./pages/ingredients/IngredientsPage"; +import {MenuPage} from "./pages/cocktails/MenuPage"; +import {AllCocktailsPage} from "./pages/cocktails/AllCocktailsPage"; +import {EditIngredientPage} from "./pages/ingredients/EditIngredientPage"; +import {EditCocktailPage} from "./pages/cocktails/EditCocktailPage"; +import {MyQueuePage} from "./pages/queue/MyQueuePage"; +import {VisitorPage} from "./pages/VisitorPage"; +import {CocktailMenuBarPage} from "./pages/cocktails/CocktailMenuBarPage"; +import {MyBarPage} from "./pages/MyBarPage"; +import {useEffect, useState} from "react"; + +export function NavigationRoutes() { + const {auth} = useAuth(); + const [loadedRoutes, setLoadedRoutes] = useState(undefined); + useEffect(() => { + setLoadedRoutes(auth ? authPages : guestPages) + }, [auth]); + if (!loadedRoutes) { + return null + } + return ( + + {loadedRoutes.map((page) => { + return ( + + {page.children} + }/> + ) + })} + + ) +} + +function ElementProvider({isPrivate, children}) { + if (isPrivate) { + return ({children}); + } else { + return ({children}); + } +} + +const authPages = [ + { + children: (), + isPrivate: false, + path: paths.home, + }, + { + path: paths.auth.signIn, + children: (), + isPrivate: false, + }, + { + path: paths.dashboard.overview, + isPrivate: true, + children: (), + exact: true, + }, + { + path: paths.bar.cocktails, + isPrivate: true, + children: () + }, + { + path: paths.bar.list, + isPrivate: true, + children: () + }, + { + path: paths.orders.my, + isPrivate: true, + children: () + }, + { + path: paths.bar.ingredients, + isPrivate: true, + children: () + }, + { + path: paths.bar.ordersQueue, + isPrivate: true, + children: (), + }, + { + path: paths.visitor.inBar, + isPrivate: true, + children: () + }, + { + path: paths.bar.ingredientEdit, + isPrivate: true, + forAdmin: true, + children: () + }, + { + path: paths.bar.menu, + isPrivate: true, + children: () + }, + { + path: paths.bar.cocktailEdit, + isPrivate: true, + forAdmin: true, + children: () + }, + { + path: paths.notFound, + isPrivate: false, + children: () + }, +] + +const guestPages = [ + { + path: paths.home, + isPrivate: false, + children: (), + exact: true, + }, + { + path: paths.auth.tg, + isPrivate: false, + children: (), + exact: false + }, + { + path: paths.auth.signIn, + isPrivate: + false, + children: (), + }, + { + path: paths.notFound, + isPrivate: false, + children: (), + }, +] \ No newline at end of file diff --git a/front/src/app/layout/PublicLayout.js b/front/src/app/layout/PublicLayout.js new file mode 100644 index 0000000..74aa4f6 --- /dev/null +++ b/front/src/app/layout/PublicLayout.js @@ -0,0 +1,58 @@ +import * as React from 'react'; +import Box from '@mui/material/Box'; +import Stack from '@mui/material/Stack'; +import Typography from '@mui/material/Typography'; +import {DynamicLogo} from "../../components/core/Logo"; +import {paths} from "../../path"; + +export function PublicLayout({ children }) { + return ( + + + + + + + + + {children} + + + + + + + + Добро пожаловать в бар + + + + Самый большой выбор честно спизженных коктейлей + + + + + + + ); +} diff --git a/front/src/app/layout/UserLayout.js b/front/src/app/layout/UserLayout.js new file mode 100644 index 0000000..d98ee16 --- /dev/null +++ b/front/src/app/layout/UserLayout.js @@ -0,0 +1,31 @@ +import {SideNav} from "../../components/navigation/SideNav"; +import Box from "@mui/material/Box"; +import {MainNav} from "../../components/navigation/MainNav"; +import Container from "@mui/material/Container"; + +export function UserLayout({children}) { + return ( + + + + + + {children} + + + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/MyBarPage.js b/front/src/app/pages/MyBarPage.js new file mode 100644 index 0000000..b0d3c56 --- /dev/null +++ b/front/src/app/pages/MyBarPage.js @@ -0,0 +1,62 @@ +import Box from "@mui/material/Box"; +import Toolbar from "@mui/material/Toolbar"; +import Typography from "@mui/material/Typography"; +import Paper from "@mui/material/Paper"; +import {FormControl, InputAdornment, InputLabel, OutlinedInput, Tabs} from "@mui/material"; +import IconButton from "@mui/material/IconButton"; +import SearchIcon from "@mui/icons-material/Search"; +import * as React from "react"; +import {useState} from "react"; +import Tab from "@mui/material/Tab"; +import {a11yProps} from "../../components/core/tabProps"; +import {CustomTabPanel} from "../../components/core/TabPanel"; +import {BarList} from "../../components/bar/BarList"; + +export function MyBarPage() { + const [value, setValue] = React.useState(0); + const handleChange = (event, newValue) => setValue(newValue); + const [findString, setFindString] = useState(""); + + return ( + + {/*Заголовок*/} + + Мои бары + + {/*Поиск*/} + + + Поиск + setFindString(e.target.value)} + label="With normal TextField" + startAdornment={ + + + + + + } + /> + + + {/*Рабочее поле ингредиентов*/} + + + + + + + + + + + + + + + {/*Модальное окно информации об ингредиенте*/} + {/**/} + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/VisitorPage.js b/front/src/app/pages/VisitorPage.js new file mode 100644 index 0000000..1fea703 --- /dev/null +++ b/front/src/app/pages/VisitorPage.js @@ -0,0 +1,77 @@ +import Box from "@mui/material/Box"; +import {useEffect, useState} from "react"; +import {api} from "../../lib/clients/api"; +import {requests} from "../../requests"; +import {useAlert} from "../../hooks/useAlert"; +import Typography from "@mui/material/Typography"; +import {VisitorItem} from "../../components/visitor/VisitorItem"; +import Toolbar from "@mui/material/Toolbar"; +import * as React from "react"; +import Button from "@mui/material/Button"; +import {useUser} from "../../hooks/useUser"; + +export function VisitorPage() { + const {session, checkSession} = useUser(); + const [visitors, setVisitors] = useState([]) + const [open, setOpen] = useState(false); + const {createError} = useAlert(); + + useEffect(() => { + api().get(requests.visitors.all) + .then((r) => { + setVisitors(r.data) + }) + .catch(() => createError("Ошибка получения данных")) + // eslint-disable-next-line + }, []); + useEffect(() => { + setOpen(session.isActive); + }, [session, checkSession]) + + const changeHandler = (visitor) => { + const arr = visitors.map((v) => { + if(v.id === visitor.id) { + return { + ...visitor, + invited: !visitor.invited + } + } + return v; + }) + api().post(`${requests.visitors.invite}id=${visitor.id}&value=${!visitor.invited}`) + .then(() => setVisitors(arr)) + .catch(() => createError("Ошибка запроса")) + + } + const changeShift = () => { + api().post(`${requests.bar.session.change}?value=${!open}`) + .then(() => { + checkSession?.(); + setOpen(!open) + }) + .catch(() => createError("Ошибка закрытия сессии")) + } + + return ( + + {/*Заголовок*/} + + Посетители + + + {visitors.map((v) => { + return ( + + ) + })} + + + + + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/auth/sign-in/loginPage.js b/front/src/app/pages/auth/sign-in/loginPage.js new file mode 100644 index 0000000..e424afd --- /dev/null +++ b/front/src/app/pages/auth/sign-in/loginPage.js @@ -0,0 +1,11 @@ +import * as React from 'react'; +import {GuestGuard} from "../../../../components/auth/guest-guard"; +import {SignInForm} from "../../../../components/auth/sign-in-form"; + +export default function LoginPage() { + return ( + + + + ); +} diff --git a/front/src/app/pages/auth/sign-in/telegram-code.js b/front/src/app/pages/auth/sign-in/telegram-code.js new file mode 100644 index 0000000..6a3b783 --- /dev/null +++ b/front/src/app/pages/auth/sign-in/telegram-code.js @@ -0,0 +1,30 @@ +import * as React from "react"; +import {useSearchParams} from "react-router-dom"; +import {Loading} from "../../../../components/core/Loading"; +import {api} from "../../../../lib/clients/api"; +import {requests} from "../../../../requests"; +import {useAuth} from "../../../../hooks/useAuth"; + +export function TelegramCode() { + const [searchParams] = useSearchParams(); + const {checkSession} = useAuth(); + + let code = searchParams.get("code"); + const request = { + byLogin: false, + code: code + } + api().post(requests.auth.login, request) + .then(async (response) => { + if (response.data.error) { + return; + } + localStorage.setItem("token", response.data.token); + await checkSession?.(); + window.location.reload(); + }) + + return ( + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/cocktails/AllCocktailsPage.js b/front/src/app/pages/cocktails/AllCocktailsPage.js new file mode 100644 index 0000000..875364c --- /dev/null +++ b/front/src/app/pages/cocktails/AllCocktailsPage.js @@ -0,0 +1,7 @@ +import CocktailsPageContent from "./CocktailsPageContent"; + +export function AllCocktailsPage() { + return ( + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/cocktails/CocktailMenuBarPage.js b/front/src/app/pages/cocktails/CocktailMenuBarPage.js new file mode 100644 index 0000000..bef556f --- /dev/null +++ b/front/src/app/pages/cocktails/CocktailMenuBarPage.js @@ -0,0 +1,127 @@ +import Box from "@mui/material/Box"; +import Toolbar from "@mui/material/Toolbar"; +import Typography from "@mui/material/Typography"; +import Paper from "@mui/material/Paper"; +import {Fab, FormControl, FormControlLabel, InputAdornment, InputLabel, OutlinedInput} from "@mui/material"; +import IconButton from "@mui/material/IconButton"; +import SearchIcon from "@mui/icons-material/Search"; +import Switch from "@mui/material/Switch"; +import {blue} from "@mui/material/colors"; +import UpIcon from "@mui/icons-material/KeyboardArrowUp"; +import {Loading} from "../../../components/core/Loading"; +import * as React from "react"; +import {useEffect, useMemo, useState} from "react"; +import {CocktailsList} from "../../../components/cocktails/CocktailsList"; +import {requests} from "../../../requests"; +import {api} from "../../../lib/clients/api"; +import {useAlert} from "../../../hooks/useAlert"; +import {CocktailInfoModal} from "../../../components/cocktails/CocktailInfoModal"; + +export function CocktailMenuBarPage() { + const {createError} = useAlert(); + const [grouping, setGrouping] = useState(true); + const [findString, setFindString] = useState(""); + const [loading, setLoading] = useState(true); + const [cocktails, setCocktails] = useState([]); + const [openModal, setOpenModal] = useState(false); + const [selected, setSelected] = useState(null); + + useEffect(() => { + api().get(`${requests.cocktails.menu}?all=true`) + .then((r) => { + setCocktails(r.data); + setLoading(false); + }) + .catch(() => createError("Ошибка получения данных")) + // eslint-disable-next-line + }, []); + + + const handleOpenModal = (row) => { + setSelected(row) + setOpenModal(true); + } + const changeHandler = (row, value) => { + const newState = cocktails.map((r) => { + if(r.id !== row.id) { + return r; + } + return { + ...r, + inMenu: value + } + }); + api().post(`${requests.cocktails.menu}?id=${row.id}&value=${value}`) + .then(() => { + setCocktails(newState); + }).catch(() => createError("Ошибка сохранения данных")) + } + + const visibleRows = useMemo(() => { + if (findString === "") { + return cocktails; + } + let regExp = new RegExp("(.*?)" + findString + "(.*?)", "i"); + return cocktails + .filter((row) => row.name.split(" ").map((n) => n.match(regExp) !== null).includes(true)) + // eslint-disable-next-line + }, [cocktails, findString]) + + return ( + + {/*Заголовок*/} + + Меню бара + + {/*Поиск*/} + + + Поиск + setFindString(e.target.value)} + label="With normal TextField" + startAdornment={ + + + + + + } + /> + + } + onClick={() => setGrouping(!grouping)} + label="Группировать" + labelPlacement="end"/> + + {/*Рабочее поле коктейлей*/} + + {/*Иконка возврата наверх*/} + window.window.scrollTo(0, 0)} + aria-label='Expand' + color='inherit'> + + + {/*Загрузчик*/} + + {/*Модальное окно информации об ингредиенте*/} + { + setSelected(null); + setOpenModal(false); + }}/> + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/cocktails/CocktailsPageContent.js b/front/src/app/pages/cocktails/CocktailsPageContent.js new file mode 100644 index 0000000..428aa5e --- /dev/null +++ b/front/src/app/pages/cocktails/CocktailsPageContent.js @@ -0,0 +1,333 @@ +import Grid from "@mui/material/Grid"; +import {useAlert} from "../../../hooks/useAlert"; +import * as React from "react"; +import {useCallback, useEffect, useState} from "react"; +import {Cocktail} from "../../../components/cocktails/Cocktail"; +import {Fab, Skeleton} from "@mui/material"; +import Box from "@mui/material/Box"; +import {requests} from "../../../requests"; +import {NoResult} from "../../../components/cocktails/NoResult"; +import {FilterBlock} from "../../../components/cocktails/FilterBlock"; +import {api} from "../../../lib/clients/api"; +import {CocktailInfoModal} from "../../../components/cocktails/CocktailInfoModal"; +import {useUser} from "../../../hooks/useUser"; +import {blue} from "@mui/material/colors"; +import UpIcon from "@mui/icons-material/KeyboardArrowUp"; +import {sortList} from "../../../components/cocktails/sortingList"; +import {getComparator} from "../../../components/core/getComparator"; +import Button from "@mui/material/Button"; +import Paper from "@mui/material/Paper"; +import CheckMarks from "../../../components/cocktails/CheckMarks"; + +const filterList = (rows, filter, allowIngredients) => { + let regExp = new RegExp("(.*?)" + filter.search + "(.*?)", "i"); + const sortingObj = sortList.find((s) => s.name === filter.sorting); + const sortingValues = sortingObj.id.split("|"); + return rows + .filter((row) => { + const nameReg = row.name.split(" ").map((n) => n.match(regExp) !== null).includes(true); + const ingredientReg = row.components + .split(", ") + .map((r) => r.match(regExp) !== null) + .includes(true); + return nameReg || ingredientReg; + }) + .filter((row) => filter.onlyFavourite ? row.rating.favourite : true) + .filter((row) => filter.glass.length === 0 || filter.glass.includes(row.glass)) + .filter((row) => filter.category.length === 0 || filter.category.includes(row.category)) + .filter((row) => filter.alcohol.length === 0 || filter.alcohol.includes(row.alcoholic)) + .filter((row) => { + if (filter.tags.length === 0) { + return true; + } + + if (row.tags.length === 0) { + return false; + } + return row.tags.split(",").find((tag) => filter.tags.includes(tag)) + }) + .filter((row) => { + if (filter.iCount.length === 0) { + return true; + } + const arr = row.components.split(", "); + const count = arr.filter((n) => !allowIngredients.includes(n)).length; + const filt = filter.ingredient.length === 0 || arr.filter((n) => filter.ingredient.includes(n)).length > 0; + + return filter.iCount === count && filt; + }) + .filter((row) => { + if (filter.inMenu === "") { + return row; + } + const filterValue = filter.inMenu === "Есть в меню"; + return filterValue === row.inMenu; + }) + .sort(getComparator(sortingValues[1], sortingValues[0], "name")) +} + +const emptyFilter = { + search: "", + hidden: true, + onlyFavourite: false, + glass: [], + category: [], + alcohol: [], + tags: [], + iCount: [], + ingredient: [], + inMenu: "", + sorting: "Название по возрастанию" +} + +const CocktailsPageContent = ({all}) => { + const {user} = useUser(); + const {createError, createSuccess} = useAlert(); + const [allowIngredients, setAllowIngredients] = useState([]) + const [rows, setRows] = useState([]); + const [filter, setFilter] = useState(emptyFilter) + const [open, setOpen] = useState(false); + const [selectedCocktail, setSelectedCocktail] = useState(null) + const [chips, setChips] = useState([]) + const [page, setPage] = useState(-1); + const [load, setLoad] = useState(false); + const [isEnd, setIsEnd] = useState(false); + const [isNew, setIsNew] = useState(true); + + const loading = useCallback(() => { + const size = Math.floor((window.innerWidth) / 350) * 5; + if (load || (!isNew && isEnd)) { + return false; + } + setLoad(true); + const request = { + ...filter, + all: all, + sort: sortList.find((s) => s.name === filter.sorting).id, + page: page + 1, + size: size, + iCount: Array.isArray(filter.iCount) ? null : filter.iCount + } + api().post(requests.cocktails.menu, request) + .then((r) => { + if (r.data.length === 0) { + if(isNew) { + setRows([]); + } + setIsEnd(true); + setLoad(false); + return; + } + const cocktails = isNew ? r.data : rows.concat(r.data); + setRows(cocktails); + setIsNew(false); + setPage(page + 1); + setLoad(false); + }) + .catch((r) => { + setLoad(false); + createError("Ошибка загрузки данных от сервера Status:" + r.status) + }) + // eslint-disable-next-line + }, [load, isEnd, page]); + useEffect(() => { + const handleScroll = () => { + const {scrollTop, scrollHeight, clientHeight} = document.documentElement; + if (scrollTop + clientHeight >= scrollHeight - 100) { + loading(); + } + } + window.addEventListener('scroll', handleScroll); + return () => window.removeEventListener('scroll', handleScroll); + }, [loading]); + useEffect(() => { + api().get(requests.bar.ingredientSimple) + .then((r) => { + const arr = r.data.filter((i) => i.isHave) + .map((i) => i.name) + setAllowIngredients(arr) + }) + .catch(() => createError("Ошибка получения ингредиентов")) + // eslint-disable-next-line + }, []) + useEffect(() => { + loading(); + }, [filter]) + useEffect(() => { + if (!all) { + return; + } + const ingredients = new Set(); + rows.map((c) => c.components) + .map((c) => c.split(", ")) + .map((c) => c.filter((i) => !allowIngredients.includes(i))) + .filter((nhc) => nhc.length === 1) + .map((fc) => fc[0]) + .forEach((i) => ingredients.add(i)) + setChips(Array.from(ingredients).sort(getComparator())); + }, [rows, allowIngredients]) + + const renderSkeleton = () => { + return Array.from({length: 3}, () => null) + .map((v, index) => ); + } + const handleChangeRating = (row, value) => { + const newState = rows.map((r) => { + if (row.id === r.id) { + let newRating = r.rating; + newRating.rating = value + return { + ...r, + rating: newRating + } + } + return r; + }) + api().post(`${requests.cocktails.rating}${row.id}&rating=${value}`) + .then(() => { + setRows(newState); + createSuccess("Спасибо за оценку!") + }).catch(() => createError("Ошибка сохранения")) + + } + const handleFilterChange = (filterName, value) => { + const newState = { + ...filter, + [filterName]: value + } + setFilter(newState) + setIsNew(true); + setIsEnd(false); + setPage(-1); + } + const handleFavourite = (row) => { + const value = !row.rating.favourite; + const newState = rows.map((r) => { + if (r.id === row.id) { + let newRating = r.rating; + newRating.favourite = value; + return { + ...r, + rating: newRating + } + } + return r; + }); + let url = `${requests.cocktails.favourite}${row.id}`; + let request = value ? api().put(url) : api().delete(url); + + request + .then(() => { + setRows(newState); + createSuccess("Спасибо за оценку!") + }).catch(() => createError("Ошибка сохранения")) + } + const handleFilterClear = () => { + setFilter(emptyFilter); + } + const handleSelectCocktail = (row) => { + setSelectedCocktail(row.id) + setOpen(true) + } + const handleCloseCocktailModal = () => { + setOpen(false); + setSelectedCocktail(null); + } + const handleEditMenu = (row, value) => { + const newState = rows.map((r) => { + if (r.id !== row.id) { + return r; + } + if (all) { + return { + ...r, + inMenu: value + } + } + return null + }).filter((r) => r !== null); + + api().post(`${requests.cocktails.menu}?id=${row.id}&value=${value}`) + .then(() => setRows(newState)) + .catch(() => createError("Ошибка сохранения данных")) + } + const editMenuBlock = (row) => { + if (user.role === "USER" || user.role === "ADMIN_NOT_BARMEN") { + return null; + } + return ( + + ) + } + + return ( + + {/**/} + {/*Модальное окно информации о коктейле*/} + + {/*Блок фильтров*/} + + + {/*todo: доделать фильтр по количеству недостающих ингредиентов*/} + {/*{*/} + {/* (all && filter.iCount === 1) && (*/} + {/* */} + {/* */} + {/* */} + {/* )*/} + {/*}*/} + + {/*Основное содержимое*/} + + {rows.length > 0 && rows.map((row) => { + return ( + + ) + })} + {load && renderSkeleton()} + {rows.length === 0 && ()} + + + window.window.scrollTo(0, 0)} + aria-label='Expand' + color='inherit'> + + + + ); +} + +export default CocktailsPageContent; \ No newline at end of file diff --git a/front/src/app/pages/cocktails/EditCocktailPage.js b/front/src/app/pages/cocktails/EditCocktailPage.js new file mode 100644 index 0000000..eb81305 --- /dev/null +++ b/front/src/app/pages/cocktails/EditCocktailPage.js @@ -0,0 +1,258 @@ +import Box from "@mui/material/Box"; +import Toolbar from "@mui/material/Toolbar"; +import Typography from "@mui/material/Typography"; +import * as React from "react"; +import {useEffect, useState} from "react"; +import Paper from "@mui/material/Paper"; +import {Autocomplete} from "@mui/material"; +import TextField from "@mui/material/TextField"; +import {api} from "../../../lib/clients/api"; +import {requests} from "../../../requests"; +import {useAlert} from "../../../hooks/useAlert"; +import Stack from "@mui/material/Stack"; +import Button from "@mui/material/Button"; +import CheckMarks from "../../../components/cocktails/CheckMarks"; +import {EditCocktailReceipt} from "../../../components/cocktails/EditCocktailReceipt"; +import {SelectEdit} from "../../../components/cocktails/SelectEdit"; +import {getComparator} from "../../../components/core/getComparator"; +import {useSearchParams} from "react-router-dom"; +import {Loading} from "../../../components/core/Loading"; +import CloudUploadIcon from '@mui/icons-material/CloudUpload'; +import {styled} from "@mui/material/styles"; + +const emptyCocktail = { + id: null, + name: "", + alcoholic: "", + category: "", + components: "", + glass: "", + image: "", + instructions: "", + isAllowed: false, + rating: { + rating: 0, + favourite: false + }, + receipt: [], + tags: "", + video: "" +}; +const alcohol = [ + { + id: 1, + name: "Алкогольный" + }, + { + id: 2, + name: "Безалкогольный", + }, + { + id: 3, + name: "Опционально" + } +] +const VisuallyHiddenInput = styled('input')({ + clip: 'rect(0 0 0 0)', + clipPath: 'inset(50%)', + height: 1, + overflow: 'hidden', + position: 'absolute', + bottom: 0, + left: 0, + whiteSpace: 'nowrap', + width: 1, +}); + +export function EditCocktailPage() { + const [searchParams] = useSearchParams(); + const [loading, setLoading] = useState(true); + const {createError, createSuccess, getError} = useAlert(); + const [cocktails, setCocktails] = useState([]); + const [selected, setSelected] = useState(null); + const [cocktail, setCocktail] = useState(emptyCocktail); + + const [glass, setGlass] = useState([]); + const [category, setCategory] = useState([]); + const [tags, setTags] = useState([]) + + useEffect(() => { + api().get(requests.cocktails.simple) + .then((r) => { + const arr = r.data.sort(getComparator("asc", "name")); + setCocktails(arr) + + const currentId = searchParams.get("id"); + if (!currentId) { + setLoading(false); + return; + } + const currentCocktail = arr.find((r) => r.id === (currentId * 1)); + if (!currentCocktail) { + setLoading(false); + return; + } + setSelected(currentCocktail.id); + setLoading(false); + }) + .catch(() => createError("Ошибка получения данных")) + + api().get(requests.bar.category) + .then((r) => setCategory(r.data.sort(getComparator("asc", "name")))) + .catch(() => createError("Ошибка получения категорий")) + + api().get(requests.bar.glass) + .then((r) => setGlass(r.data.sort(getComparator("asc", "name")))) + .catch(() => createError("Ошибка получения посуды")) + + api().get(requests.bar.tags) + .then((r) => setTags(r.data.sort(getComparator("asc", "name")))) + .catch(() => createError("Ошибка получения тегов")) + // eslint-disable-next-line + }, []); + useEffect(() => { + if (!selected) { + setCocktail(emptyCocktail); + return; + } + api().get(requests.cocktails.cocktail + selected) + .then((r) => { + setCocktail(r.data) + }) + .catch(() => getError()); + // eslint-disable-next-line + }, [selected]) + + const changeCocktailValue = (name, value) => { + if (name === "tags") { + value = value.join(","); + } + setCocktail((prev) => ({ + ...prev, + [name]: value + })) + } + const saveHandler = () => { + api().patch(requests.cocktails.edit, cocktail) + .then((r) => { + if (!r.data.error) { + createSuccess("Сохранено") + return; + } + createError("Ошибка на сервере: " + r.data.error) + }) + .catch(() => createError("Неизвестная ошибка")) + } + const deleteHandle = () => { + api().delete(requests.cocktails.cocktail + cocktail.id) + .then(() => { + setCocktails(cocktails.filter((r) => r.id !== cocktail.id)) + setCocktail(emptyCocktail); + }) + .catch(() => createError("Ошибка удаления коктейля")) + } + return ( + + {/*Загрузка*/} + + {/*Заголовок*/} + + Коктейли + + {/*Поиск*/} + + { + if (!v) { + setCocktail(emptyCocktail); + setSelected(null) + } else { + setSelected(v.id) + } + }} + isOptionEqualToValue={(selected, value) => selected.id === value.id} + getOptionKey={(selected) => selected.id} + getOptionLabel={(selected) => selected.name + (selected.hasError ? " (есть ошибка)" : "")} + renderInput={(params) => } + /> + + {/*Рабочая область*/} + + + + {/*Фото*/} + + {""} + + {/*Редактирование ссылки на фото*/} + + changeCocktailValue("image", e.target.value)} + /> + + + + {/*Название*/} + + changeCocktailValue("name", e.target.value)}/> + + {/*Категория, посуда, алкогольность, теги*/} + + + + + + + {/*Рецепт*/} + + + + changeCocktailValue("instructions", e.target.value)} + /> + + + + + + + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/cocktails/MenuPage.js b/front/src/app/pages/cocktails/MenuPage.js new file mode 100644 index 0000000..02336e9 --- /dev/null +++ b/front/src/app/pages/cocktails/MenuPage.js @@ -0,0 +1,7 @@ +import CocktailsPageContent from "./CocktailsPageContent"; + +export function MenuPage() { + return ( + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/ingredients/EditIngredientPage.js b/front/src/app/pages/ingredients/EditIngredientPage.js new file mode 100644 index 0000000..d66183e --- /dev/null +++ b/front/src/app/pages/ingredients/EditIngredientPage.js @@ -0,0 +1,169 @@ +import Box from "@mui/material/Box"; +import Toolbar from "@mui/material/Toolbar"; +import Typography from "@mui/material/Typography"; +import * as React from "react"; +import {useEffect, useState} from "react"; +import Paper from "@mui/material/Paper"; +import {Autocomplete, FormControl, FormControlLabel, InputLabel} from "@mui/material"; +import {api} from "../../../lib/clients/api"; +import {requests} from "../../../requests"; +import {useAlert} from "../../../hooks/useAlert"; +import {useSearchParams} from "react-router-dom"; +import TextField from "@mui/material/TextField"; +import Switch from "@mui/material/Switch"; +import Stack from "@mui/material/Stack"; +import Button from "@mui/material/Button"; +import Select from "@mui/material/Select"; +import MenuItem from "@mui/material/MenuItem"; +import {getComparator} from "../../../components/core/getComparator"; + +const emptyIngredient = { + id: null, + name: "", + enName: "", + have: false, + image: null, + type: "", + alcohol: false, + abv: null, + description: null +} + +export function EditIngredientPage() { + const [searchParams] = useSearchParams(); + const [ingredients, setIngredients] = useState([]); + const [types, setTypes] = useState([]); + const [ingredient, setIngredient] = useState(emptyIngredient) + const {createError, createSuccess} = useAlert(); + useEffect(() => { + api().get(requests.bar.ingredientList) + .then((r) => { + const arr = r.data.sort(getComparator("asc", "name")); + setIngredients(arr) + + const currentId = searchParams.get("id"); + if (!currentId) { + return; + } + const currentIngredient = arr.find((r) => r.id === (currentId * 1)); + if (!currentIngredient) { + return; + } + setIngredient(currentIngredient); + }) + .catch(() => createError("Ошибка получения данных")) + + api().get(requests.bar.type) + .then((r) => setTypes(r.data.sort(getComparator("asc", "name")))) + // eslint-disable-next-line + }, []); + + const changeIngredientValue = (name, value) => { + setIngredient((prev) => ({ + ...prev, + [name]: value + })) + } + const saveIngredientHandler = () => { + api().patch(requests.bar.ingredient, ingredient) + .then(() => createSuccess("Ингредиент сохранен")) + .catch(() => createError("Ошибка сохранения")) + } + + return ( + + {/*Заголовок*/} + + Ингредиенты + + {/*Поиск*/} + + { + console.log(v); + return !v ? setIngredient(emptyIngredient) : setIngredient(v) + }} + isOptionEqualToValue={(selected, value) => selected.id === value.id} + getOptionKey={(selected) => selected.id} + getOptionLabel={(selected) => selected.name} + renderInput={(params) => } + /> + + {/*Форма ингредиента*/} + + + + changeIngredientValue("have", !ingredient.have)} + />} + label={"Наличие"} labelPlacement={'start'}/> + + + {""} + + + changeIngredientValue("name", e.target.value)}/> + changeIngredientValue("enName", e.target.value)}/> + + + + changeIngredientValue("alcohol", !ingredient.alcohol)} + />} + label="Алкогольный"/> + {ingredient.alcohol && ( + changeIngredientValue("abv", e.target.value)}/> + )} + + + + + Категория + + + + + + + + + + + + + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/ingredients/IngredientsPage.js b/front/src/app/pages/ingredients/IngredientsPage.js new file mode 100644 index 0000000..bffde05 --- /dev/null +++ b/front/src/app/pages/ingredients/IngredientsPage.js @@ -0,0 +1,153 @@ +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; +import Toolbar from "@mui/material/Toolbar"; +import Paper from "@mui/material/Paper"; +import {Fab, FormControl, FormControlLabel, InputAdornment, InputLabel, OutlinedInput, Tabs} from "@mui/material"; +import IconButton from "@mui/material/IconButton"; +import SearchIcon from "@mui/icons-material/Search"; +import * as React from "react"; +import {useEffect, useMemo, useState} from "react"; +import {Loading} from "../../../components/core/Loading"; +import {requests} from "../../../requests"; +import {useAlert} from "../../../hooks/useAlert"; +import {IngredientInfoModal} from "../../../components/Ingredients/IngredientInfoModal"; +import {api} from "../../../lib/clients/api"; +import Tab from "@mui/material/Tab"; +import {a11yProps} from "../../../components/core/tabProps"; +import {CustomTabPanel} from "../../../components/core/TabPanel"; +import {IngredientList} from "../../../components/Ingredients/IngredientList"; +import {blue} from "@mui/material/colors"; +import UpIcon from "@mui/icons-material/KeyboardArrowUp"; +import Switch from "@mui/material/Switch"; + +export function IngredientsPage() { + const [value, setValue] = React.useState(0); + const [grouping, setGrouping] = useState(true); + const handleChange = (event, newValue) => setValue(newValue); + const [loading, setLoading] = useState(true); + const [findString, setFindString] = useState(""); + const [ingredients, setIngredients] = useState([]); + const [openModal, setOpenModal] = useState(false); + const [selectedInfo, setSelectedInfo] = useState(null); + const {createError} = useAlert(); + + useEffect(() => { + api().get(requests.bar.ingredientList) + .then((r) => { + setIngredients(r.data) + setLoading(false); + }) + .catch(() => { + createError("Ошибка получения списка ингредиентов"); + setLoading(false); + }) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const visibleIngredients = useMemo(() => { + if (findString.length === 0) { + return ingredients; + } + const reg = new RegExp("(.*?)" + findString + "(.*?)", "i"); + return ingredients.filter((ingredient) => ingredient.name.match(reg) !== null); + }, [findString, ingredients]); + const ingredientsToAdd = visibleIngredients.filter((ingredient) => !ingredient.have); + const ingredientsInBar = visibleIngredients.filter((ingredient) => ingredient.have); + + const changeHandler = (row, value) => { + const newState = ingredients.map((ingredient) => { + if (ingredient.id === row.id) { + return { + ...ingredient, + have: value + } + } else { + return ingredient; + } + }) + const url = `${requests.bar.ingredient}?id=${row.id}`; + const request = value ? api().put(url) : api().delete(url); + request + .then(() => { + setIngredients(newState); + }) + .catch(() => { + createError("Ошибка изменения ингредиента"); + }); + } + const handleOpenModal = (i) => { + setOpenModal(true); + setSelectedInfo(i); + } + const handleCloseModal = () => { + setSelectedInfo(null); + setOpenModal(false); + } + + return ( + + {/*Заголовок*/} + + Ингредиенты бара + + {/*Поиск*/} + + + Поиск + setFindString(e.target.value)} + label="With normal TextField" + startAdornment={ + + + + + + } + /> + + } + onClick={() => setGrouping(!grouping)} + label="Группировать" + labelPlacement="end"/> + + {/*Рабочее поле ингредиентов*/} + + + + + + + + + + + + + + + window.window.scrollTo(0, 0)} + aria-label='Expand' + color='inherit'> + + + {/*Загрузчик*/} + + {/*Модальное окно информации об ингредиенте*/} + + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/notFound/NotFoundPage.js b/front/src/app/pages/notFound/NotFoundPage.js new file mode 100644 index 0000000..86f7b58 --- /dev/null +++ b/front/src/app/pages/notFound/NotFoundPage.js @@ -0,0 +1,38 @@ +import * as React from 'react'; +import Box from '@mui/material/Box'; +import Button from '@mui/material/Button'; +import Stack from '@mui/material/Stack'; +import Typography from '@mui/material/Typography'; +import { ArrowLeft as ArrowLeftIcon } from '@phosphor-icons/react/dist/ssr/ArrowLeft'; +import {paths} from "../../../path"; + +export default function NotFoundPage() { + return ( + + + + + + + 404: Страница не найдена или недоступна + + + Вы либо выбрали какой-то сомнительный маршрут, либо попали сюда по ошибке. Что бы это ни было, попробуйте воспользоваться навигацией + + + + + ); +} diff --git a/front/src/app/pages/queue/MyQueuePage.js b/front/src/app/pages/queue/MyQueuePage.js new file mode 100644 index 0000000..b3e0e5d --- /dev/null +++ b/front/src/app/pages/queue/MyQueuePage.js @@ -0,0 +1,7 @@ +import {QueueContent} from "./QueueContent"; + +export function MyQueuePage() { + return ( + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/queue/QueueContent.js b/front/src/app/pages/queue/QueueContent.js new file mode 100644 index 0000000..dc66fbf --- /dev/null +++ b/front/src/app/pages/queue/QueueContent.js @@ -0,0 +1,82 @@ +import {useEffect, useMemo, useState} from "react"; +import {useAlert} from "../../../hooks/useAlert"; +import * as React from "react"; +import {api} from "../../../lib/clients/api"; +import {requests} from "../../../requests"; +import {createHeadCell} from "../../../components/orders/createHeadCelll"; +import {Loading} from "../../../components/core/Loading"; +import OrderModal from "../../../components/orders/OrderModal"; +import EnhancedTable from "../../../components/orders/EnhancedTable"; + +export function QueueContent({my}) { + const [load, setLoad] = useState(false); + const [orders, setOrders] = useState([]); + const {createSuccess, createError} = useAlert(); + const [openModal, setOpenModal] = React.useState(false); + const [selected, setSelected] = useState(null); + + useEffect(() => { + setLoad(false); + const url = my ? requests.bar.myOrders : requests.bar.order; + api().get(url) + .then(r => { + setOrders(r.data); + setLoad(true); + }) + .catch(() => { + createError("Ошибка при получении заказов"); + setLoad(true) + }) + // eslint-disable-next-line + }, []); + + const sliced = useMemo(() => orders.sort((a, b) => b.id - a.id), [orders]) + + const cells = [ + createHeadCell('id', true, true, 'Номер заказа', "20px"), + createHeadCell('cocktail.name', true, false, 'Коктейль', "40px"), + createHeadCell('visitor.name', true, false, 'Клиент', "40px"), + createHeadCell('status', true, true, 'Статус', "30px"), + ]; + + const changeOrderHandle = (row, status) => { + let url = requests.bar.order + "?id=" + row.id; + let isCancel = status === "CANCEL"; + let request = isCancel ? api().delete(url) : api().put(url); + request + .then(() => { + createSuccess(isCancel ? "Заказ отменен" : "Заказ готов"); + let newArr = orders.filter((order) => { + if (order.id !== row.id) { + row.status = isCancel ? "CANCEL" : "DONE"; + return row; + } + return order; + }) + setOrders(newArr); + setSelected(null); + setOpenModal(false); + }) + .catch(() => createError("Ошибка изменения заказа")) + } + const handleSelect = (row) => { + setSelected(row); + setOpenModal(true); + } + const handleCloseModal = () => { + setOpenModal(false); + setSelected(null); + }; + + const filterValues = !my ? ["DONE", "CANCEL"] : []; + + return ( + <> + + + + + ) +} \ No newline at end of file diff --git a/front/src/app/pages/queue/QueuePage.js b/front/src/app/pages/queue/QueuePage.js new file mode 100644 index 0000000..639ade7 --- /dev/null +++ b/front/src/app/pages/queue/QueuePage.js @@ -0,0 +1,10 @@ +import * as React from "react"; +import {QueueContent} from "./QueueContent"; + +const QueuePage = () => { + return ( + + ) +} + +export default QueuePage; \ No newline at end of file diff --git a/front/src/components/Ingredients/IngredientCard.js b/front/src/components/Ingredients/IngredientCard.js new file mode 100644 index 0000000..cdb08d8 --- /dev/null +++ b/front/src/components/Ingredients/IngredientCard.js @@ -0,0 +1,37 @@ +import {Card} from "@mui/material"; +import IconButton from "@mui/material/IconButton"; +import DeleteIcon from '@mui/icons-material/Delete'; +import AddBoxRoundedIcon from '@mui/icons-material/AddBoxRounded'; +import InfoRoundedIcon from '@mui/icons-material/InfoRounded'; +import React from "react"; +import Box from "@mui/material/Box"; +import Stack from "@mui/material/Stack"; +import {paths} from "../../path"; +import EditIcon from '@mui/icons-material/Edit'; + +export function IngredientCard({row, value, infoHandler, changeHandler}) { + return ( + + + + {row.id}/ + + {row.name} + + {!row.alcohol ? "" : `${row.abv}%`} + + changeHandler(row, value)}> + {value ? : } + + infoHandler(row)}> + + + + + + + + + + ) +} \ No newline at end of file diff --git a/front/src/components/Ingredients/IngredientInfoModal.js b/front/src/components/Ingredients/IngredientInfoModal.js new file mode 100644 index 0000000..75ce54f --- /dev/null +++ b/front/src/components/Ingredients/IngredientInfoModal.js @@ -0,0 +1,37 @@ +import Dialog from "@mui/material/Dialog"; +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import DialogActions from "@mui/material/DialogActions"; +import Button from "@mui/material/Button"; +import * as React from "react"; +import Stack from "@mui/material/Stack"; +import Typography from "@mui/material/Typography"; + +export function IngredientInfoModal({ingredient, open, closeHandler}) { + if (!ingredient) { + return null; + } + return ( + + {ingredient.name} + + + {ingredient.name} + {ingredient.alcohol && ({`Крепость ${ingredient.abv}`})} + {ingredient.description} + + + + + + + ); +} \ No newline at end of file diff --git a/front/src/components/Ingredients/IngredientList.js b/front/src/components/Ingredients/IngredientList.js new file mode 100644 index 0000000..ac74e11 --- /dev/null +++ b/front/src/components/Ingredients/IngredientList.js @@ -0,0 +1,75 @@ +import Box from "@mui/material/Box"; +import {IngredientCard} from "./IngredientCard"; +import {useMemo, useState} from "react"; +import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; +import {Accordion, AccordionDetails, AccordionSummary} from "@mui/material"; +import Typography from "@mui/material/Typography"; +import {getComparator} from "../core/getComparator"; +import {groupByForLoop} from "../core/groupByForLoop"; + +export function IngredientList({rows, value, infoHandler, changeHandler, grouping}) { + const [size, setSize] = useState(10); + window.addEventListener('scroll', () => { + if (window.innerHeight + window.scrollY >= (document.documentElement.scrollHeight - 100)) { + if (!grouping) { + setSize(size + 10) + } + } + }); + + const visibleRows = useMemo(() => { + let res = []; + if (rows.length === 0) { + return null; + } + if (!grouping) { + return rows + .sort(getComparator("asc", "name")) + .slice(0, size) + .map((row) => { + return ( + + ) + }) + } + + const group = groupByForLoop(rows, "type") + if (!group || group.size === 0) { + return null; + } + const keys = Array.from(group.keys()); + keys.sort(getComparator("asc")) + .forEach((key) => { + const list = group.get(key) + res.push( + + } + aria-controls="panel1-content" + id="panel1-header" + > + {key !== "null" ? key : "Без категории"} + + + {list.sort(getComparator("asc", "name")) + .map((row) => { + return ( + + ) + })} + + + ) + }) + return res; + // eslint-disable-next-line + }, [size, rows]) + + return ( + + {visibleRows} + + ) +} \ No newline at end of file diff --git a/front/src/components/auth/guest-guard.js b/front/src/components/auth/guest-guard.js new file mode 100644 index 0000000..7148601 --- /dev/null +++ b/front/src/components/auth/guest-guard.js @@ -0,0 +1,48 @@ +'use client'; + +import * as React from 'react'; +import Alert from '@mui/material/Alert'; +import {useAuth} from "../../hooks/useAuth"; +import {logger} from "../../lib/DefaultLogger"; +import {paths} from "../../path"; + +export function GuestGuard({ children }) { + const { auth, error, isLoading } = useAuth(); + const [isChecking, setIsChecking] = React.useState(true); + + const checkPermissions = async () => { + if (isLoading) { + return; + } + + if (error) { + setIsChecking(false); + return; + } + + if (auth) { + logger.debug('[GuestGuard]: User is logged in, redirecting to dashboard'); + window.location.replace(paths.dashboard.overview); + return; + } + + setIsChecking(false); + }; + + React.useEffect(() => { + checkPermissions().catch(() => { + // noop + }); + // eslint-disable-next-line react-hooks/exhaustive-deps -- Expected + }, [auth, error, isLoading]); + + if (isChecking) { + return null; + } + + if (error) { + return {error}; + } + + return {children}; +} diff --git a/front/src/components/auth/sign-in-form.js b/front/src/components/auth/sign-in-form.js new file mode 100644 index 0000000..12d7ddb --- /dev/null +++ b/front/src/components/auth/sign-in-form.js @@ -0,0 +1,135 @@ +import * as React from 'react'; +import {useState} from 'react'; +import Stack from '@mui/material/Stack'; +import Typography from '@mui/material/Typography'; +import {paths} from "../../path"; +import TextField from "@mui/material/TextField"; +import TelegramIcon from '@mui/icons-material/Telegram'; +import IconButton from "@mui/material/IconButton"; +import Button from "@mui/material/Button"; +import CircularProgress from "@mui/material/CircularProgress"; +import Box from "@mui/material/Box"; +import {red} from "@mui/material/colors"; +import {requests} from "../../requests"; +import {useAuth} from "../../hooks/useAuth"; +import {api} from "../../lib/clients/api"; + +const emptyRequest = { + byLogin: false, + code: "", + login: "", + password: "" +} + +export function SignInForm() { + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const [request, setRequest] = useState(emptyRequest); + const [pass, setPass] = useState(false) + const {checkSession} = useAuth(); + + const buttonSx = { + minWidth: "300px", + ...(error && { + bgcolor: red[500], + '&:hover': { + bgcolor: red[700], + }, + }), + }; + const handleButtonClick = async () => { + setLoading(true); + const response = await api().post(requests.auth.login, request); + + if (response.data.error) { + setError(response.data.error); + setLoading(false); + return; + } + + localStorage.setItem("token", response.data.token); + + await checkSession?.(); + + window.location.reload(); + } + const renderByCode = () => { + return ( + + + + + + setRequest((prevState) => ({ + ...prevState, + code: e.target.value + }))} + sx={{minWidth: 300}} id="outlined-basic" label="Код подтверждения" + variant="outlined"/> + + ) + } + const renderByLogin = () => { + return ( + + setRequest(prevState => ({ + ...prevState, + login: e.target.value + }))} + sx={{minWidth: 300}} id="loginField" label="Логин" + variant="outlined"/> + setRequest((prevState) => ({ + ...prevState, + password: e.target.value + }))} + sx={{minWidth: 300}} id="passwordField" label="Пароль" type="password" + autoComplete="current-password" variant="outlined"/> + + ) + } + + return ( + + + Авторизация + { + setRequest((prevState) => ({ + ...prevState, + byLogin: !pass + })) + setPass(!pass) + }}> + {pass ? "Вход по телеграмм-коду" : "Вход по логину и паролю"} + + + {pass ? "Введите логин и пароль" + : "Для входа нужно всего лишь сказать об этом моему Telegram-боту, перейди по ссылке и набери \n/start"} + + {pass ? renderByLogin() : renderByCode()} + + + {error && ( + {error} + )} + + + + + + ); +} diff --git a/front/src/components/bar/BarItem.js b/front/src/components/bar/BarItem.js new file mode 100644 index 0000000..d33b423 --- /dev/null +++ b/front/src/components/bar/BarItem.js @@ -0,0 +1,40 @@ +import {Card} from "@mui/material"; +import Stack from "@mui/material/Stack"; +import Box from "@mui/material/Box"; +import React from "react"; +import Typography from "@mui/material/Typography"; +import Button from "@mui/material/Button"; + +const role = (myRole) => { + switch (myRole) { + case "ADMIN": + return "Администратор"; + case "ADMIN_NOT_BARMEN": + return "Управляющий"; + default: + return null; + } +} + +export function BarItem({row, changeHandler, all, enterExist}) { + return ( + + + + {row.name} + {role(row.myRole)} + + + {row.open ? "Бар открыт" : "Бар закрыт"} + + + + + ) +} \ No newline at end of file diff --git a/front/src/components/bar/BarList.js b/front/src/components/bar/BarList.js new file mode 100644 index 0000000..1b564c2 --- /dev/null +++ b/front/src/components/bar/BarList.js @@ -0,0 +1,70 @@ +import Box from "@mui/material/Box"; +import {useEffect, useMemo, useState} from "react"; +import {api} from "../../lib/clients/api"; +import {requests} from "../../requests"; +import {useAlert} from "../../hooks/useAlert"; +import {BarItem} from "./BarItem"; +import {Loading} from "../core/Loading"; +import * as React from "react"; +import {useUser} from "../../hooks/useUser"; + +export function BarList({all}) { + const {getError, createError} = useAlert(); + const {refresh} = useUser(); + const [bars, setBars] = useState([]); + const [loading, setLoading] = useState(true); + + useEffect(() => { + setLoading(true); + api().get(`${requests.bar.list}?my=${!all}`) + .then((r) => { + setBars(r.data) + setLoading(false); + }) + .catch(() => getError()) + // eslint-disable-next-line + }, []); + const enterExist = useMemo(() => bars.find((b) => b.enter), [bars]) + const changeHandler = (row, value) => { + let request; + let newState; + if (!all) { + if (value && enterExist) { + //todo: добавить переключение + createError("Нельзя войти более чем в один бар одновременно") + return; + } + request = api().patch(`${requests.bar.enter}${row.id}&value=${value}`); + newState = bars.map((b) => { + if (b.id !== row.id) { + return b; + } + return { + ...b, + enter: value + } + }) + } else { + request = api().post(requests.bar.addToMyList, row); + newState = bars.filter((b) => b.id !== row.id); + } + request.then(() => { + setBars(newState) + refresh(); + }).catch(() => getError()) + } + return ( + + { + bars.map((row) => { + return ( + + ) + }) + } + {/*Загрузчик*/} + + + ) +} \ No newline at end of file diff --git a/front/src/components/cocktails/CheckMarks.js b/front/src/components/cocktails/CheckMarks.js new file mode 100644 index 0000000..e9b0a3e --- /dev/null +++ b/front/src/components/cocktails/CheckMarks.js @@ -0,0 +1,68 @@ +import * as React from 'react'; +import OutlinedInput from '@mui/material/OutlinedInput'; +import InputLabel from '@mui/material/InputLabel'; +import MenuItem from '@mui/material/MenuItem'; +import FormControl from '@mui/material/FormControl'; +import ListItemText from '@mui/material/ListItemText'; +import Select from '@mui/material/Select'; +import Checkbox from '@mui/material/Checkbox'; + +const ITEM_HEIGHT = 48; +const ITEM_PADDING_TOP = 8; +const MenuProps = { + PaperProps: { + style: { + maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP, + width: 250, + }, + }, +}; + +export default function CheckMarks({rows, name, filterValue, handleChange, filterName, width, nonMulti, nullValue, identity}) { + const realValue = !nonMulti ? filterValue.filter((v) => v.length > 0) : filterValue; + return ( +
+ + {name} + + +
+ ); +} \ No newline at end of file diff --git a/front/src/components/cocktails/Cocktail.js b/front/src/components/cocktails/Cocktail.js new file mode 100644 index 0000000..272da22 --- /dev/null +++ b/front/src/components/cocktails/Cocktail.js @@ -0,0 +1,113 @@ +import {CardActions, CardContent, CardMedia, Rating} from "@mui/material"; +import {useAlert} from "../../hooks/useAlert"; +import Typography from "@mui/material/Typography"; +import List from "@mui/material/List"; +import ListItem from "@mui/material/ListItem"; +import ListItemText from "@mui/material/ListItemText"; +import Button from "@mui/material/Button"; +import Grid from "@mui/material/Grid"; +import {requests} from "../../requests"; +import {CocktailItemStyled} from "./CocktailItemStyled"; +import IconButton from "@mui/material/IconButton"; +import FavoriteBorderIcon from '@mui/icons-material/FavoriteTwoTone'; +import FavoriteIcon from '@mui/icons-material/Favorite'; +import {api} from "../../lib/clients/api"; +import Box from "@mui/material/Box"; +import {useUser} from "../../hooks/useUser"; + +function renderFavouriteBadge(handleFavourite, row) { + const childIcon = row.rating.favourite ? : ; + return ( + handleFavourite(row)}> + {childIcon} + + ) +} + +function renderRating(handleChangeRating, row) { + return ( + handleChangeRating(row, newValue)} + /> + ) +} + +export function Cocktail({row, handleFavourite, handleChangeRating, handleSelect, editMenuBlock}) { + const {createAlert, createError} = useAlert(); + const {session, user} = useUser(); + + function pay(cocktailId) { + api().post(`${requests.bar.pay}cocktail=${cocktailId}`) + .then(() => createAlert("Ожидайте свой заказ", "success")) + .catch(() => createError("Ошибка во время создания заказа")) + } + + return ( + + + + handleSelect(row)} + component="img" + alt={row.name} + height="300" + + image={`${row.image}/preview`} + /> + {renderFavouriteBadge(handleFavourite, row)} + {renderRating(handleChangeRating, row)} + + {row.name} + + {row.hasError && ( + + Имеет ошибку в рецепте или ингредиентах + + )} + + {"Категория: " + row.category} + + + {"Алкоголь: " + row.alcoholic} + + {row.volume !== null && ( + + {"Крепость: ≈" + row.volume} + + )} + + {"Подача: " + row.glass} + + + {"Состав: " + row.components} + + {(row.tags && row.tags.length > 0) && ( + + {"Теги: " + row.tags.replaceAll(',', ', ')} + )} + + + + {(row.isAllowed && session.isActive && user.invited) && + + } + {editMenuBlock(row)} + + + + + ) +} \ No newline at end of file diff --git a/front/src/components/cocktails/CocktailInfoModal.js b/front/src/components/cocktails/CocktailInfoModal.js new file mode 100644 index 0000000..98a018c --- /dev/null +++ b/front/src/components/cocktails/CocktailInfoModal.js @@ -0,0 +1,180 @@ +import DialogTitle from "@mui/material/DialogTitle"; +import DialogContent from "@mui/material/DialogContent"; +import Stack from "@mui/material/Stack"; +import Typography from "@mui/material/Typography"; +import DialogActions from "@mui/material/DialogActions"; +import Button from "@mui/material/Button"; +import Dialog from "@mui/material/Dialog"; +import * as React from "react"; +import {useEffect, useState} from "react"; +import {CardMedia} from "@mui/material"; +import Paper from "@mui/material/Paper"; +import Box from "@mui/material/Box"; +import StarBorderIcon from '@mui/icons-material/StarBorder'; +import IconButton from "@mui/material/IconButton"; +import ShoppingCartIcon from '@mui/icons-material/ShoppingCart'; +import DeleteIcon from '@mui/icons-material/Delete'; +import {IngredientInfoModal} from "../Ingredients/IngredientInfoModal"; +import {api} from "../../lib/clients/api"; +import {requests} from "../../requests"; +import {useAlert} from "../../hooks/useAlert"; +import {paths} from "../../path"; +import {Loading} from "../core/Loading"; +import {useUser} from "../../hooks/useUser"; + +export function CocktailInfoModal({open, row, closeHandler}) { + const {user} = useUser(); + const {getError, createError, createSuccess} = useAlert(); + const [cocktail, setCocktail] = useState(null) + const [loading, setLoading] = useState(false); + const [selectedIngredient, setSelectedIngredient] = useState(null); + const [openIngredientModal, setOpenIngredientModal] = useState(false) + const closeIngredientHandler = () => { + setOpenIngredientModal(false); + setSelectedIngredient(null); + } + const openIngredientModalHandler = (id) => { + api().get(`${requests.bar.ingredient}?id=${id}`) + .then((r) => { + setSelectedIngredient(r.data) + setOpenIngredientModal(true); + }).catch(() => createError("Ошибка получения информации об ингредиенте")) + } + const selectIngredientHandler = (ingredient) => { + const url = `${requests.bar.ingredient}?id=${ingredient.id}`; + const request = ingredient.isHave ? api().delete(url) : api().put(url); + const value = !ingredient.isHave; + request.then(() => { + const newReceipts = cocktail.receipt.map((r) => { + if (r.ingredient.id !== ingredient.id) { + return r; + } + return { + ...r, + ingredient: { + ...ingredient, + isHave: value + } + } + }) + setCocktail({ + ...cocktail, + receipt: newReceipts + }) + createSuccess("Сохранено") + }).catch(() => createError("Ошибка сохранения")) + } + + useEffect(() => { + setLoading(true) + if (!row) { + setLoading(false) + return; + } + api().get(requests.cocktails.modal + row) + .then((r) => { + setCocktail(r.data) + setLoading(false) + }) + .catch(() => { + getError(); + setLoading(false) + closeHandler(); + }) + }, [row]); + + if (!row || !cocktail) { + return null; + } + let alko = 0; + let volume = 0; + return ( + + + + + + {cocktail.name} + + {cocktail.rating.rating > 0 && + ( + + {`${cocktail.rating.rating}/5`} + + + ) + } + + + + + + Ингредиенты: + + + {cocktail.receipt.map((r) => { + const hasError = r.count === null || r.unit === null; + const measure = hasError ? r.measure : (r.count + " " + r.unit.name) + if(alko !== null && volume !== null) { + console.log(r) + } + return ( + + + {user.role !== "USER" && ( + selectIngredientHandler(r.ingredient)}> + {r.ingredient.isHave + ? () + : () + } + + )} + openIngredientModalHandler(r.ingredient.id)}>{r.ingredient.name} + + {measure} + + ) + })} + + + + + Инструкция: + + + {cocktail.instructions} + + + + + + {user.role.includes("ADMIN") && ( + + )} + + + + ) +} \ No newline at end of file diff --git a/front/src/components/cocktails/CocktailItemStyled.js b/front/src/components/cocktails/CocktailItemStyled.js new file mode 100644 index 0000000..f8badc1 --- /dev/null +++ b/front/src/components/cocktails/CocktailItemStyled.js @@ -0,0 +1,12 @@ +import {styled} from "@mui/material/styles"; +import {Card} from "@mui/material"; + +export const CocktailItemStyled = styled(Card)(({theme}) => ({ + backgroundColor: '#fff', + ...theme.typography.body2, + padding: theme.spacing(1), + color: theme.palette.text.secondary, + ...theme.applyStyles('dark', { + backgroundColor: '#1A2027', + }) +})); \ No newline at end of file diff --git a/front/src/components/cocktails/CocktailListCard.js b/front/src/components/cocktails/CocktailListCard.js new file mode 100644 index 0000000..046e1ac --- /dev/null +++ b/front/src/components/cocktails/CocktailListCard.js @@ -0,0 +1,44 @@ +import {Card, FormControlLabel} from "@mui/material"; +import Stack from "@mui/material/Stack"; +import Box from "@mui/material/Box"; +import IconButton from "@mui/material/IconButton"; +import InfoRoundedIcon from "@mui/icons-material/InfoRounded"; +import {paths} from "../../path"; +import EditIcon from "@mui/icons-material/Edit"; +import React from "react"; +import Switch from "@mui/material/Switch"; + +export function CocktailListCard({row, changeHandler, infoHandler}) { + return ( + + + + {row.id} + + + {row.name} + changeHandler(row, !row.inMenu)} + value="bottom" + control={ + + } + label="В меню" + labelPlacement="start" + /> + + + + infoHandler(row)}> + + + + + + + + + + ) +} \ No newline at end of file diff --git a/front/src/components/cocktails/CocktailsList.js b/front/src/components/cocktails/CocktailsList.js new file mode 100644 index 0000000..3e2aaf8 --- /dev/null +++ b/front/src/components/cocktails/CocktailsList.js @@ -0,0 +1,76 @@ +import {useMemo, useState} from "react"; +import {getComparator} from "../core/getComparator"; +import {Accordion, AccordionDetails, AccordionSummary} from "@mui/material"; +import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; +import Typography from "@mui/material/Typography"; +import Box from "@mui/material/Box"; +import {CocktailListCard} from "./CocktailListCard"; +import {groupByForLoop} from "../core/groupByForLoop"; + +export function CocktailsList({rows, grouping, changeHandler, infoHandler}) { + const [size, setSize] = useState(20); + + window.addEventListener('scroll', () => { + if (window.innerHeight + window.scrollY >= (document.documentElement.scrollHeight - 100)) { + if (!grouping) { + setSize(size + 10) + } + } + }); + + const visibleRows = useMemo(() => { + let res = []; + if (rows.length === 0) { + return null; + } + if (!grouping) { + return rows + .sort(getComparator("asc", "name")) + .slice(0, size) + .map((row) => { + return ( + + ) + }) + } + + const group = groupByForLoop(rows, "category") + if (!group || group.size === 0) { + return null; + } + Array.from(group.keys()) + .sort(getComparator()) + .map((key) => { + const list = group.get(key); + res.push( + + } + aria-controls="panel1-content" + id="panel1-header" + > + {key} + + + {list.sort(getComparator("asc", "name")) + .map((row) => { + return ( + + ) + })} + + + ) + }) + return res; + // eslint-disable-next-line + }, [size, rows]) + + return ( + + {visibleRows} + + ) +} \ No newline at end of file diff --git a/front/src/components/cocktails/EditCocktailReceipt.js b/front/src/components/cocktails/EditCocktailReceipt.js new file mode 100644 index 0000000..15f51fb --- /dev/null +++ b/front/src/components/cocktails/EditCocktailReceipt.js @@ -0,0 +1,167 @@ +import Box from "@mui/material/Box"; +import Stack from "@mui/material/Stack"; +import Typography from "@mui/material/Typography"; +import IconButton from "@mui/material/IconButton"; +import AddIcon from "@mui/icons-material/Add"; +import * as React from "react"; +import {useEffect, useState} from "react"; +import {useAlert} from "../../hooks/useAlert"; +import {api} from "../../lib/clients/api"; +import {requests} from "../../requests"; +import {getComparator} from "../core/getComparator"; +import {Card} from "@mui/material"; +import {SelectEdit} from "./SelectEdit"; +import TextField from "@mui/material/TextField"; +import DeleteForeverIcon from '@mui/icons-material/DeleteForever'; + +export function EditCocktailReceipt({receipt, handler}) { + const {createError} = useAlert() + const [ingredients, setIngredients] = useState([]); + const [units, setUnits] = useState([]) + + useEffect(() => { + api().get(requests.bar.ingredientList) + .then((r) => setIngredients(r.data.sort(getComparator("asc", "name")))) + .catch(() => createError("Ошибка получения списка ингредиентов")) + + api().get(requests.bar.unit) + .then((r) => setUnits(r.data.sort(getComparator("asc", "name")))) + .catch(() => createError("Ошибка получения единиц измерения")) + }, []); + + const selectHandler = (name, value) => { + const ing = ingredients.find((i) => i.name === value) + const newState = receipt.map((r, i) => { + if (i !== name) { + return r; + } + return { + id: r.id, + ingredient: { + id: ing.id, + isHave: ing.have, + name: ing.name + }, + measure: r.measure + } + }) + handler("receipt", newState); + checkAllowed(newState); + } + const unitHandler = (name, value) => { + const ing = units.find((i) => i.name === value) + const newState = receipt.map((r, i) => { + if (i !== name) { + return r; + } + return { + id: r.id, + ingredient: r.ingredient, + unit: ing, + count: r.count, + measure: r.measure + } + }) + handler("receipt", newState); + checkAllowed(newState); + } + const removeHandler = (index) => { + const arr = receipt.filter((r, i) => i !== index) + handler("receipt", arr) + checkAllowed(arr) + } + const addHandler = () => { + const oldState = receipt; + oldState.push({ + id: null, + ingredient: { + id: null, + isHave: false, + name: "" + }, + measure: "" + }); + handler("receipt", oldState); + checkAllowed(oldState); + } + const checkAllowed = (state) => { + handler("isAllowed", !state.map((r) => r.ingredient.isHave).includes(false)) + } + const measureHandler = (index, value) => { + const newState = receipt.map((r, i) => { + if (index !== i) { + return r + } + return { + ...r, + measure: value + } + }) + handler("receipt", newState) + } + const countHandler = (index, value) => { + const newState = receipt.map((r, i) => { + if (index !== i) { + return r + } + return { + ...r, + count: value + } + }) + handler("receipt", newState) + } + + return ( + + {/*Заголовок*/} + + Рецепт + addHandler()}> + + + + {/*Рецепт*/} + + {receipt.map((r, i) => { + return ( + + + + + measureHandler(i, e.target.value)} + /> + removeHandler(i)} + > + + + + + countHandler(i, e.target.value)} + /> + + + + + ) + })} + + + ) +} \ No newline at end of file diff --git a/front/src/components/cocktails/FilterBlock.js b/front/src/components/cocktails/FilterBlock.js new file mode 100644 index 0000000..a8f5bef --- /dev/null +++ b/front/src/components/cocktails/FilterBlock.js @@ -0,0 +1,160 @@ +import {Card, FormControl, FormControlLabel, InputAdornment, InputLabel, OutlinedInput} from "@mui/material"; +import IconButton from "@mui/material/IconButton"; +import SearchIcon from "@mui/icons-material/Search"; +import Tooltip from "@mui/material/Tooltip"; +import FilterListIcon from "@mui/icons-material/FilterList"; +import Box from "@mui/material/Box"; +import Grid from "@mui/material/Grid"; +import Switch from "@mui/material/Switch"; +import CheckMarks from "./CheckMarks"; +import Button from "@mui/material/Button"; +import * as React from "react"; +import {useEffect, useState} from "react"; +import {requests} from "../../requests"; +import {useAlert} from "../../hooks/useAlert"; +import {api} from "../../lib/clients/api"; +import {sortList} from "./sortingList"; + +const inMenuFilter = [ + { + id: true, + name: "Есть в меню" + }, + { + id: false, + name: "Нет в меню" + } +] + +export function FilterBlock({filter, handleFilterChange, handleClearFilter, barmen, all}) { + const {createError} = useAlert(); + const [glass, setGlass] = useState([]); + const [category, setCategory] = useState([]); + const [tags, setTags] = useState([]) + const alcohol = [ + { + name: "Алкогольный", + id: "alcohol1" + }, + { + name: "Безалкогольный", + id: "alcohol2" + }, + { + name: "Опционально", + id: "alcohol3" + }]; + const ingredientCount = [ + { + id: "1IngredientCount", + name: 1 + }, + { + id: "2IngredientCount", + name: 2 + }, + { + id: "3IngredientCount", + name: 3 + }, + { + id: "4IngredientCount", + name: 4 + }, + { + id: "5IngredientCount", + name: 5 + }] + + useEffect(() => { + api().get(requests.bar.category) + .then((r) => setCategory(r.data)) + .catch(() => createError("Ошибка получения категорий")) + + api().get(requests.bar.glass) + .then((r) => setGlass(r.data)) + .catch(() => createError("Ошибка получения посуды")) + + api().get(requests.bar.tags) + .then((r) => setTags(r.data)) + .catch(() => createError("Ошибка получения тегов")) + // eslint-disable-next-line + }, []); + + return ( + + {/*Строка поиска*/} + + Поиск + handleFilterChange("search", e.target.value)} + label="With normal TextField" + startAdornment={ + + + + + + } + /> + + {/*Кнопка открытия фильтров*/} + + handleFilterChange("hidden", !filter.hidden)}> + + + + {/*Блок сортировки*/} + + {/*Блок фильтров*/} + + + ) +} \ No newline at end of file diff --git a/front/src/components/cocktails/NoResult.js b/front/src/components/cocktails/NoResult.js new file mode 100644 index 0000000..f3f53e1 --- /dev/null +++ b/front/src/components/cocktails/NoResult.js @@ -0,0 +1,17 @@ +import Grid from "@mui/material/Grid"; +import {Stack} from "@mui/material"; +import Typography from "@mui/material/Typography"; +import {CocktailItemStyled} from "./CocktailItemStyled"; + +export function NoResult({load}) { + return ( + + ) +} \ No newline at end of file diff --git a/front/src/components/cocktails/SelectEdit.js b/front/src/components/cocktails/SelectEdit.js new file mode 100644 index 0000000..6d32ef7 --- /dev/null +++ b/front/src/components/cocktails/SelectEdit.js @@ -0,0 +1,25 @@ +import {FormControl, InputLabel} from "@mui/material"; +import Select from "@mui/material/Select"; +import MenuItem from "@mui/material/MenuItem"; +import * as React from "react"; + +export function SelectEdit({label, value, array, handler, attributeName, width, margin}) { + return ( + + {label} + + + ) +} \ No newline at end of file diff --git a/front/src/components/cocktails/sortingList.js b/front/src/components/cocktails/sortingList.js new file mode 100644 index 0000000..f651662 --- /dev/null +++ b/front/src/components/cocktails/sortingList.js @@ -0,0 +1,27 @@ +export const sortList = [ + { + id: "name|asc", + name: "Название по возрастанию" + }, + { + id: "name|desc", + name: "Название по убыванию" + }, + // todo: добавить сортировки в беке + // { + // id: "rating.rating|desc", + // name: "Сначала с оценкой" + // }, + // { + // id: "rating.rating|asc", + // name: "Сначала без оценки" + // }, + // { + // id: "rating.favourite|desc", + // name: "Сначала избранные" + // }, + // { + // id: "rating.favourite|asc", + // name: "Сначала не избранные" + // } +] \ No newline at end of file diff --git a/front/src/components/core/Loading.js b/front/src/components/core/Loading.js new file mode 100644 index 0000000..dce4c85 --- /dev/null +++ b/front/src/components/core/Loading.js @@ -0,0 +1,12 @@ +import {Backdrop, CircularProgress} from "@mui/material"; + +export function Loading({loading}) { + return ( + theme.zIndex.drawer + 1}} + open={loading} + > + + + ); +} \ No newline at end of file diff --git a/front/src/components/core/LocalizationProvider.js b/front/src/components/core/LocalizationProvider.js new file mode 100644 index 0000000..9d82493 --- /dev/null +++ b/front/src/components/core/LocalizationProvider.js @@ -0,0 +1,10 @@ +import {AdapterDayjs} from '@mui/x-date-pickers/AdapterDayjs'; +import {LocalizationProvider as Provider} from '@mui/x-date-pickers/LocalizationProvider'; +import * as React from 'react'; +import 'dayjs/locale/ru' + +export function LocalizationProvider({children}) { + return ( + {children} + ); +} \ No newline at end of file diff --git a/front/src/components/core/Logo.js b/front/src/components/core/Logo.js new file mode 100644 index 0000000..2a6b680 --- /dev/null +++ b/front/src/components/core/Logo.js @@ -0,0 +1,38 @@ +'use client'; + +import * as React from 'react'; +import Box from '@mui/material/Box'; +import { useColorScheme } from '@mui/material/styles'; +import {NoSsr} from "./NoSsr"; + +const HEIGHT = 60; +const WIDTH = 60; + +export function Logo({ color = 'dark', emblem, height = HEIGHT, width = WIDTH }) { + let url; + + if (emblem) { + url = color === 'light' ? '/assets/logo-emblem.svg' : '/assets/logo-emblem--dark.svg'; + } else { + url = color === 'light' ? '/assets/logo.svg' : '/assets/logo--dark.svg'; + } + + return ; +} + +export function DynamicLogo({ + colorDark = 'light', + colorLight = 'dark', + height = HEIGHT, + width = WIDTH, + ...props + }) { + const { colorScheme } = useColorScheme(); + const color = colorScheme === 'dark' ? colorDark : colorLight; + + return ( + }> + + + ); +} diff --git a/front/src/components/core/ModalDialogStyled.js b/front/src/components/core/ModalDialogStyled.js new file mode 100644 index 0000000..7eaa151 --- /dev/null +++ b/front/src/components/core/ModalDialogStyled.js @@ -0,0 +1,9 @@ +import {styled} from "@mui/material/styles"; +import Dialog from "@mui/material/Dialog"; + +export const ModalDialogStyled = styled(Dialog)(({theme}) => ({ + backdrop: { + margin: '4px', + border: 'solid', + }, +})); \ No newline at end of file diff --git a/front/src/components/core/NoSsr.js b/front/src/components/core/NoSsr.js new file mode 100644 index 0000000..c177cc6 --- /dev/null +++ b/front/src/components/core/NoSsr.js @@ -0,0 +1,25 @@ +import * as React from 'react'; +import useEnhancedEffect from '@mui/utils/useEnhancedEffect'; + +export function NoSsr(props) { + const {children, defer = false, fallback = null} = props; + const [mountedState, setMountedState] = React.useState(false); + + useEnhancedEffect(() => { + if (!defer) { + setMountedState(true); + } + }, [defer]); + + React.useEffect(() => { + if (defer) { + setMountedState(true); + } + }, [defer]); + + return ( + <> + {mountedState ? children : fallback} + + ) +} diff --git a/front/src/components/core/TabPanel.js b/front/src/components/core/TabPanel.js new file mode 100644 index 0000000..c788ed2 --- /dev/null +++ b/front/src/components/core/TabPanel.js @@ -0,0 +1,24 @@ +import PropTypes from "prop-types"; +import * as React from "react"; + +export function CustomTabPanel(props) { + const {children, value, index, ...other} = props; + + return ( + + ); +} + +CustomTabPanel.propTypes = { + children: PropTypes.node, + index: PropTypes.number.isRequired, + value: PropTypes.number.isRequired, +}; \ No newline at end of file diff --git a/front/src/components/core/ThemeSwitch.js b/front/src/components/core/ThemeSwitch.js new file mode 100644 index 0000000..4cc8764 --- /dev/null +++ b/front/src/components/core/ThemeSwitch.js @@ -0,0 +1,81 @@ +import {styled, useColorScheme} from "@mui/material/styles"; +import Switch from "@mui/material/Switch"; +import React from "react"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; + +export function ThemeSwitch() { + const {mode, setMode} = useColorScheme(); + + return ( + + setMode(e.target.checked ? 'dark' : 'light')} + inputProps={{'aria-label': 'controlled'}} + /> + + + {(mode === 'dark' ? "Темная " : "Светлая ") + "тема"} + + + + ) +} + +const StyledSwitch = styled(Switch)(({theme}) => ({ + width: 62, + height: 34, + padding: 7, + '& .MuiSwitch-switchBase': { + margin: 1, + padding: 0, + transform: 'translateX(6px)', + '&.Mui-checked': { + color: '#fff', + transform: 'translateX(22px)', + '& .MuiSwitch-thumb:before': { + backgroundImage: `url('data:image/svg+xml;utf8,')`, + }, + '& + .MuiSwitch-track': { + opacity: 1, + backgroundColor: theme.palette.mode === 'dark' ? '#8796A5' : '#aab4be', + }, + }, + }, + '& .MuiSwitch-thumb': { + backgroundColor: theme.palette.mode === 'dark' ? '#003892' : '#001e3c', + width: 32, + height: 32, + '&::before': { + content: "''", + position: 'absolute', + width: '100%', + height: '100%', + left: 0, + top: 0, + backgroundRepeat: 'no-repeat', + backgroundPosition: 'center', + backgroundImage: `url('data:image/svg+xml;utf8,')`, + }, + }, + '& .MuiSwitch-track': { + opacity: 1, + backgroundColor: theme.palette.mode === 'dark' ? '#8796A5' : '#aab4be', + borderRadius: 20 / 2, + }, +})); \ No newline at end of file diff --git a/front/src/components/core/UserPopover.js b/front/src/components/core/UserPopover.js new file mode 100644 index 0000000..a0b2805 --- /dev/null +++ b/front/src/components/core/UserPopover.js @@ -0,0 +1,92 @@ +import * as React from 'react'; +import Box from '@mui/material/Box'; +import Divider from '@mui/material/Divider'; +import ListItemIcon from '@mui/material/ListItemIcon'; +import MenuItem from '@mui/material/MenuItem'; +import MenuList from '@mui/material/MenuList'; +import Popover from '@mui/material/Popover'; +import Typography from '@mui/material/Typography'; +import {SignOut as SignOutIcon} from '@phosphor-icons/react/dist/ssr/SignOut'; +import {logger} from "../../lib/DefaultLogger"; +import {useAuth} from "../../hooks/useAuth"; +import {authClient} from "../../lib/clients/AuthClient"; +import {useLocation} from "react-router-dom"; +import {useUser} from "../../hooks/useUser"; + +export function UserPopover({anchorEl, onClose, open}) { + const {checkSession} = useAuth(); + const {user, session} = useUser(); + + const location = useLocation(); + + const handleSignOut = React.useCallback(async () => { + try { + const {error} = await authClient.signOut(); + + if (error) { + logger.error('Sign out error', error); + return; + } + + // Refresh the auth state + await checkSession?.(); + + // UserProvider, for this case, will not refresh the router and we need to do it manually + window.location.reload(); + // After refresh, AuthGuard will handle the redirect + } catch (err) { + logger.error('Sign out error', err); + } + }, [checkSession, location]); + + return ( + + + {userDescriptor(user, session)} + + + + {/**/} + {/* */} + {/* */} + {/* */} + {/* Настройки*/} + {/**/} + {/**/} + {/* */} + {/* */} + {/* */} + {/* Профиль*/} + {/**/} + + + + + Выход + + + + ); +} + +function userDescriptor(user, session) { + if (!user) { + return (Ошибка загрузки данных); + } + + const open = (session.isActive && user.invited) ? "открыт" : "закрыт"; + + return ( + <> + {user.name + " " + user.lastName} + {user.id} + {`Бар ${open}`} + + ); +} diff --git a/front/src/components/core/descendingComparator.js b/front/src/components/core/descendingComparator.js new file mode 100644 index 0000000..c3486dc --- /dev/null +++ b/front/src/components/core/descendingComparator.js @@ -0,0 +1,29 @@ +export function descendingComparator(a, b, orderBy, lastOrder) { + if (getValue(b, orderBy) < getValue(a, orderBy)) { + return -1; + } + if (getValue(b, orderBy) > getValue(a, orderBy)) { + return 1; + } + if (lastOrder && orderBy !== lastOrder) { + if (getValue(b, lastOrder) < getValue(a, lastOrder)) { + return 1; + } + if (getValue(b, lastOrder) > getValue(a, lastOrder)) { + return -1; + } + } + return 0; +} + +function getValue(obj, orderBy) { + if (!orderBy) { + return obj; + } + const split = orderBy.split(".") + let res = obj[split[0]]; + for (let i = 1; i < split.length; i++) { + res = res[split[i]]; + } + return res; +} \ No newline at end of file diff --git a/front/src/components/core/getComparator.js b/front/src/components/core/getComparator.js new file mode 100644 index 0000000..be86af3 --- /dev/null +++ b/front/src/components/core/getComparator.js @@ -0,0 +1,10 @@ +import {descendingComparator} from "./descendingComparator"; + +export function getComparator(order, orderBy, lastOrder) { + if(!order) { + order = "asc" + } + return order === 'desc' + ? (a, b) => descendingComparator(a, b, orderBy, lastOrder) + : (a, b) => -descendingComparator(a, b, orderBy, lastOrder); +} \ No newline at end of file diff --git a/front/src/components/core/groupByForLoop.js b/front/src/components/core/groupByForLoop.js new file mode 100644 index 0000000..797f501 --- /dev/null +++ b/front/src/components/core/groupByForLoop.js @@ -0,0 +1,14 @@ +export const groupByForLoop = (arr, prop) => { + const grouped = new Map(); + for (let i = 0; i < arr.length; i++) { + let key = arr[i][prop]; + if (!key) { + key = "Без категории" + } + if (!grouped.has(key)) { + grouped.set(key, []); + } + grouped.get(key).push(arr[i]); + } + return grouped; +}; \ No newline at end of file diff --git a/front/src/components/core/navIcons.js b/front/src/components/core/navIcons.js new file mode 100644 index 0000000..ed78364 --- /dev/null +++ b/front/src/components/core/navIcons.js @@ -0,0 +1,37 @@ +import {ChartPie as ChartPieIcon} from '@phosphor-icons/react/dist/ssr/ChartPie'; +import {GearSix as GearSixIcon} from '@phosphor-icons/react/dist/ssr/GearSix'; +import {PlugsConnected as PlugsConnectedIcon} from '@phosphor-icons/react/dist/ssr/PlugsConnected'; +import {User as UserIcon} from '@phosphor-icons/react/dist/ssr/User'; +import {Users as UsersIcon} from '@phosphor-icons/react/dist/ssr/Users'; +import {XSquare} from '@phosphor-icons/react/dist/ssr/XSquare'; +import { + Basket, + BookOpen, + Books, + Cheers, + CoffeeBean, + Coins, + Martini, + Storefront, + Users, + Wallet +} from "@phosphor-icons/react"; + +export const navIcons = { + 'menu': BookOpen, + 'list': Books, + 'storefront': Storefront, + 'wallet': Wallet, + 'cocktail': Martini, + 'visitors': Users, + 'orders': Cheers, + 'basket': Basket, + 'coins': Coins, + 'ingredients': CoffeeBean, + 'chart-pie': ChartPieIcon, + 'gear-six': GearSixIcon, + 'plugs-connected': PlugsConnectedIcon, + 'x-square': XSquare, + user: UserIcon, + users: UsersIcon, +} diff --git a/front/src/components/core/tabProps.js b/front/src/components/core/tabProps.js new file mode 100644 index 0000000..f46eb13 --- /dev/null +++ b/front/src/components/core/tabProps.js @@ -0,0 +1,6 @@ +export function a11yProps(index) { + return { + id: `simple-tab-${index}`, + 'aria-controls': `simple-tabpanel-${index}`, + }; +} \ No newline at end of file diff --git a/front/src/components/navigation/MainNav.js b/front/src/components/navigation/MainNav.js new file mode 100644 index 0000000..9ed3151 --- /dev/null +++ b/front/src/components/navigation/MainNav.js @@ -0,0 +1,65 @@ +import * as React from 'react'; +import Avatar from '@mui/material/Avatar'; +import Box from '@mui/material/Box'; +import IconButton from '@mui/material/IconButton'; +import Stack from '@mui/material/Stack'; +import {List as ListIcon} from '@phosphor-icons/react/dist/ssr/List'; +// import NotificationsIcon from '@mui/icons-material/Notifications'; + +import {usePopover} from "../../hooks/usePopover"; +import {MobileNav} from "./MobileNav"; +import {UserPopover} from "../core/UserPopover"; +// import Tooltip from "@mui/material/Tooltip"; +// import {Badge} from "@mui/material"; +// import {useAlert} from "../../hooks/useAlert"; + +export function MainNav() { + const [openNav, setOpenNav] = React.useState(false); + // const {notImplement} = useAlert(); + + const userPopover = usePopover(); + + return ( + <> + + + + setOpenNav(true)} sx={{display: {xl: 'none'}}}> + + + + + {/* notImplement()}>*/} + {/* */} + {/* */} + {/* */} + {/* */} + {/* */} + {/**/} + + + + + + { + setOpenNav(false); + }} + open={openNav} + /> + + ); +} diff --git a/front/src/components/navigation/MobileNav.js b/front/src/components/navigation/MobileNav.js new file mode 100644 index 0000000..6a6c918 --- /dev/null +++ b/front/src/components/navigation/MobileNav.js @@ -0,0 +1,38 @@ +import * as React from 'react'; +import Drawer from '@mui/material/Drawer'; +import {NavigationMenu} from "./NavigationMenu"; + +//Боковое меню +export function MobileNav({open, onClose}) { + return ( + + + + ); +} diff --git a/front/src/components/navigation/NavItem.js b/front/src/components/navigation/NavItem.js new file mode 100644 index 0000000..0ea6b06 --- /dev/null +++ b/front/src/components/navigation/NavItem.js @@ -0,0 +1,74 @@ +import Stack from "@mui/material/Stack"; +import {isNavItemActive} from "../../lib/isNavItemActive"; +import {navIcons} from "../core/navIcons"; +import Box from "@mui/material/Box"; +import Typography from "@mui/material/Typography"; +import {Link} from "react-router-dom"; + +export function renderNavItems({items = [], pathname}) { + const children = items.reduce((acc, curr) => { + const {key, ...item} = curr; + acc.push(); + return acc; + }, []); + + return ( + + {children} + + ); +} + +function NavItem({disabled, external, href, icon, matcher, pathname, title}) { + const active = isNavItemActive({disabled, external, href, matcher, pathname}); + const Icon = icon ? navIcons[icon] : null; + + return ( +
  • + + + + {Icon ? ( + + ) : null} + + + + {title} + + + + +
  • + ); +} \ No newline at end of file diff --git a/front/src/components/navigation/NavigationMenu.js b/front/src/components/navigation/NavigationMenu.js new file mode 100644 index 0000000..4af0066 --- /dev/null +++ b/front/src/components/navigation/NavigationMenu.js @@ -0,0 +1,56 @@ +import Stack from "@mui/material/Stack"; +import Box from "@mui/material/Box"; +import {ThemeSwitch} from "../core/ThemeSwitch"; +import Divider from "@mui/material/Divider"; +import {renderNavItems} from "./NavItem"; +import {navItems} from "../../navItems"; +import React, {useEffect, useState} from "react"; +import {useLocation} from "react-router-dom"; +import {useUser} from "../../hooks/useUser"; +import Typography from "@mui/material/Typography"; + +function renderSpecialItems(items, label, pathname) { + return ( + +
    + {label} + {renderNavItems({items: items, pathname: pathname})} +
    + ) +} + +export function NavigationMenu() { + const location = useLocation(); + const pathname = location.pathname; + const {user} = useUser(); + const [items, setItems] = useState(null) + + const userChild = navItems.filter((item) => !item.forBarmen && !item.forAdmin) + const barmenChild = navItems.filter((item) => item.forBarmen) + const adminChild = navItems.filter((item) => item.forAdmin) + + useEffect(() => { + const role = !user ? "USER" : Object.keys(user).length === 0 ? "USER" : user.role + const newState = ( + + {renderNavItems({items: userChild, pathname: pathname})} + {role !== "USER" && renderSpecialItems(barmenChild, "Для бармена:", pathname)} + {role === "ADMIN" && renderSpecialItems(adminChild, "Для админа", pathname)} + + ) + setItems(newState) + // eslint-disable-next-line + }, [user, pathname]); + + return ( + <> + {/*верхняя стопка*/} + + + + + {/*меню навигации*/} + {items} + + ) +} \ No newline at end of file diff --git a/front/src/components/navigation/SideNav.js b/front/src/components/navigation/SideNav.js new file mode 100644 index 0000000..a90632a --- /dev/null +++ b/front/src/components/navigation/SideNav.js @@ -0,0 +1,37 @@ +import * as React from 'react'; +import Box from '@mui/material/Box'; +import {NavigationMenu} from "./NavigationMenu"; + +export function SideNav() { + return ( + + + + ); +} \ No newline at end of file diff --git a/front/src/components/orders/EnhancedTable.js b/front/src/components/orders/EnhancedTable.js new file mode 100644 index 0000000..3f97b88 --- /dev/null +++ b/front/src/components/orders/EnhancedTable.js @@ -0,0 +1,113 @@ +import * as React from "react"; +import Box from "@mui/material/Box"; +import Paper from "@mui/material/Paper"; +import TableContainer from "@mui/material/TableContainer"; +import Table from "@mui/material/Table"; +import TableBody from "@mui/material/TableBody"; +import TableRow from "@mui/material/TableRow"; +import TableCell from "@mui/material/TableCell"; +import TablePagination from "@mui/material/TablePagination"; +import {getComparator} from "../core/getComparator"; +import {EnhancedTableToolbar} from "./EnhancedTableToolbar"; +import {EnhancedTableHead} from "./EnhancedTableHead"; + +export default function EnhancedTable({name, rows, cells, handleSelect, filterField, filterEqual, filterValue}) { + //сортировка убывание/возрастание + const [order, setOrder] = React.useState('desc'); + //По какому полю сортируем + const [orderBy, setOrderBy] = React.useState('id'); + //выбранная страница + const [page, setPage] = React.useState(0); + //количество элементов на странице + const [rowsPerPage, setRowsPerPage] = React.useState(10); + + const handleRequestSort = (event, property) => { + const isAsc = orderBy === property && order === 'asc'; + setOrder(isAsc ? 'desc' : 'asc'); + setOrderBy(property); + }; + const handleChangePage = (event, newPage) => { + setPage(newPage); + }; + const handleChangeRowsPerPage = (event) => { + setRowsPerPage(parseInt(event.target.value, 10)); + setPage(0); + }; + const getTableValue = (obj, index) => { + let indexArr = index.split("."); + let object = obj; + for (let i of indexArr) { + object = object[i]; + } + return object; + } + + const visibleRows = React.useMemo(() => + [...rows] + .filter((row) => { + if (!filterField) { + return true; + } + for (let field of filterField) { + for (let value of filterValue) { + let eq = (row[field] === value) === filterEqual; + if (!eq) { + return false; + } + } + } + return true; + }) + .sort(getComparator(order, orderBy)) + .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage), + [order, orderBy, page, rowsPerPage, rows, filterEqual, filterField, filterValue], + ); + + const renderTable = (row) => { + // const isItemSelected = selected.includes(row.id); + const isItemSelected = false; + return ( + handleSelect(row)} role="checkbox" + aria-checked={isItemSelected} tabIndex={-1} key={row.id} selected={isItemSelected} + sx={{cursor: 'pointer'}}> + {cells.map((cell) => { + return ( + {getTableValue(row, cell.id)} + ) + })} + + ); + } + const emptyRow = () => { + return ( + + + Нет заказов + + + ) + } + + return ( + + + + + + + + {visibleRows.map((row) => renderTable(row))} + {visibleRows.length === 0 && emptyRow()} + +
    +
    + +
    +
    + ); +} \ No newline at end of file diff --git a/front/src/components/orders/EnhancedTableHead.js b/front/src/components/orders/EnhancedTableHead.js new file mode 100644 index 0000000..bac679c --- /dev/null +++ b/front/src/components/orders/EnhancedTableHead.js @@ -0,0 +1,32 @@ +import TableHead from "@mui/material/TableHead"; +import TableRow from "@mui/material/TableRow"; +import TableCell from "@mui/material/TableCell"; +import TableSortLabel from "@mui/material/TableSortLabel"; +import Box from "@mui/material/Box"; +import {visuallyHidden} from "@mui/utils"; +import * as React from "react"; + +export function EnhancedTableHead(props) { + const {order, orderBy, onRequestSort, cells} = props; + const createSortHandler = (property) => (event) => {onRequestSort(event, property);}; + + return ( + + + {cells.map((headCell) => ( + + + {headCell.label} + {orderBy === headCell.id ? ( + + {order === 'desc' ? 'sorted descending' : 'sorted ascending'} + + ) : null} + + + ))} + + + ); +} \ No newline at end of file diff --git a/front/src/components/orders/EnhancedTableToolbar.js b/front/src/components/orders/EnhancedTableToolbar.js new file mode 100644 index 0000000..7abab77 --- /dev/null +++ b/front/src/components/orders/EnhancedTableToolbar.js @@ -0,0 +1,64 @@ +import Toolbar from "@mui/material/Toolbar"; +import {alpha} from "@mui/material/styles"; +import Typography from "@mui/material/Typography"; +import Tooltip from "@mui/material/Tooltip"; +import IconButton from "@mui/material/IconButton"; +import DeleteIcon from "@mui/icons-material/Delete"; +import FilterListIcon from "@mui/icons-material/FilterList"; +import PropTypes from "prop-types"; +import * as React from "react"; + +export function EnhancedTableToolbar(props) { + const { numSelected, name } = props; + return ( + 0 && { + bgcolor: (theme) => + alpha(theme.palette.primary.main, theme.palette.action.activatedOpacity), + }, + ]} + > + {numSelected > 0 ? ( + + {numSelected} selected + + ) : ( + + {name} + + )} + {numSelected > 0 ? ( + + + + + + ) : ( + + + + + + )} + + ); +} + +EnhancedTableToolbar.propTypes = { + numSelected: PropTypes.number.isRequired, +}; \ No newline at end of file diff --git a/front/src/components/orders/OrderModal.js b/front/src/components/orders/OrderModal.js new file mode 100644 index 0000000..53d4928 --- /dev/null +++ b/front/src/components/orders/OrderModal.js @@ -0,0 +1,95 @@ +import * as React from 'react'; +import {useEffect, useState} from 'react'; +import Box from '@mui/material/Box'; +import Button from '@mui/material/Button'; +import Dialog from '@mui/material/Dialog'; +import DialogActions from '@mui/material/DialogActions'; +import DialogContent from '@mui/material/DialogContent'; +import DialogContentText from '@mui/material/DialogContentText'; +import DialogTitle from '@mui/material/DialogTitle'; +import Stack from "@mui/material/Stack"; +import Typography from "@mui/material/Typography"; +import {ButtonGroup} from "@mui/material"; +import {requests} from "../../requests"; +import {useAlert} from "../../hooks/useAlert"; +import {api} from "../../lib/clients/api"; + +function renderButtons(row, my, handleChange) { + if (my) { + if (row.status === "NEW") { + return ( + + + + ); + } else { + return null; + } + } else { + return ( + + + + + ) + } +} + +export default function OrderModal({row, handleClose, open, handleChange, my}) { + const [receipt, setReceipt] = useState([]); + const {createError} = useAlert(); + + useEffect(() => { + if (!row) { + return; + } + api().get(requests.bar.receipts + row.cocktail.id) + .then((r) => setReceipt(r.data)) + .catch(() => createError("Ошибка получения рецепта")) + // eslint-disable-next-line + }, [row]); + + if (!row) { + return null; + } + return ( + + {"Заказ №" + row.id} + + {row.cocktail.name} + {row.cocktail.alcoholic + " " + row.cocktail.category} + {"для: " + row.visitor.name + " " + row.visitor.lastName} + + + {row.cocktail.name} + Ингредиенты: + + {receipt.map((r) => { + return ({`${r.ingredient.name} - ${r.measure}`}) + })} + + Инструкция: + {row.cocktail.instructions} + + {row.cocktail.video && ()} + + + + + {renderButtons(row, my, handleChange)} + + + + ); +} \ No newline at end of file diff --git a/front/src/components/orders/createHeadCelll.js b/front/src/components/orders/createHeadCelll.js new file mode 100644 index 0000000..fd26562 --- /dev/null +++ b/front/src/components/orders/createHeadCelll.js @@ -0,0 +1,9 @@ +export function createHeadCell(id, numeric, padding, label, width) { + return { + id: id, + numeric: numeric, + disablePadding: padding, + label: label, + width: width + } +} \ No newline at end of file diff --git a/front/src/components/visitor/VisitorItem.js b/front/src/components/visitor/VisitorItem.js new file mode 100644 index 0000000..13c5290 --- /dev/null +++ b/front/src/components/visitor/VisitorItem.js @@ -0,0 +1,49 @@ +import Typography from "@mui/material/Typography"; +import {Card, FormControlLabel} from "@mui/material"; +import Stack from "@mui/material/Stack"; +import Box from "@mui/material/Box"; +import Switch from "@mui/material/Switch"; +import * as React from "react"; + +export function VisitorItem({visitor, changeHandler, open}) { + + const getRole = (role) => { + switch (role) { + case "USER": + return 'Посетитель'; + case "BARMEN": + return 'Бармен'; + case "ADMIN": + return 'Админ'; + default: + return "Посетитель"; + } + } + + return ( + + + {`${visitor.name} ${!visitor.lastName ? "" : visitor.lastName}`} + + {getRole(visitor.role)} + + + changeHandler(visitor)} + />} + label="Приглашен" labelPlacement='start'/> + + + {visitor.isActive ? "В баре" : "Не вошел в бар"} + + + + ) +} \ No newline at end of file diff --git a/front/src/context/AuthContext.js b/front/src/context/AuthContext.js new file mode 100644 index 0000000..7cdfba6 --- /dev/null +++ b/front/src/context/AuthContext.js @@ -0,0 +1,49 @@ +import * as React from 'react'; +import {useCallback, useEffect} from 'react'; +import {logger} from "../lib/DefaultLogger"; +import {tokenUtil} from "../lib/TokenUtil"; + +export const AuthContext = React.createContext(undefined); + +export function AuthProvider({children}) { + const [state, setState] = React.useState({ + auth: false, + error: "", + isLoading: true, + }); + + const checkSession = useCallback(async () => { + try { + if (!await tokenUtil.checkToken(tokenUtil.getToken())) { + setState((prev) => ({...prev, auth: false, error: '', isLoading: false})); + return; + } + setState((prev) => ({...prev, auth: true, error: "", isLoading: false})); + } catch (err) { + logger.error(err); + setState((prev) => ({...prev, auth: false, error: 'Что-то пошло не так', isLoading: false})); + } + updater().then(); + // eslint-disable-next-line + }, []); + + useEffect(() => { + checkSession() + .catch((err) => { + logger.error(err); + }); + // eslint-disable-next-line + }, []); + + const updater = async () => { + await new Promise((resolve) => setTimeout(resolve, 1000 * 60 * 60)); + checkSession() + .catch((err) => { + logger.error(err) + }) + } + + return {children}; +} + +export const AuthConsumer = AuthContext.Consumer; diff --git a/front/src/context/UserContext.js b/front/src/context/UserContext.js new file mode 100644 index 0000000..19c8da8 --- /dev/null +++ b/front/src/context/UserContext.js @@ -0,0 +1,66 @@ +import * as React from "react"; +import {logger} from "../lib/DefaultLogger"; +import {userClient} from "../lib/clients/UserClient"; +import {tokenUtil} from "../lib/TokenUtil"; +import {createContext, useCallback, useEffect, useState} from "react"; +import {api} from "../lib/clients/api"; +import {requests} from "../requests"; + +export const UserContext = createContext(undefined); + +export function UserProvider({children}) { + const refresh = () => { + checkSession() + .catch((err) => logger.error(err)) + } + const [state, setState] = useState({ + user: {}, + session: {}, + error: "", + isLoading: true, + refresh: refresh + }); + + const checkSession = useCallback(async () => { + try { + setState((prev) => ({...prev, isLoading: true})); + if (!await tokenUtil.checkToken(tokenUtil.getToken())) { + setState((prev) => ({...prev, error: '', isLoading: false, user: {}})); + return; + } + api().get(requests.bar.session.status) + .then((r) => setState((prevState) => ({ + ...prevState, + session: r.data + }))) + .catch(() => setState((prevState) => ({ + ...prevState, + session: {} + }))) + if (Object.keys(state.user).length === 0) { + const {data, errorData} = await userClient.getMe(); + if (errorData) { + setState((prev) => ({...prev, error: errorData, isLoading: false, user: {}})); + return; + } + setState((prev) => ({...prev, error: "", isLoading: false, user: data})); + } + } catch (err) { + logger.error(err); + setState((prev) => ({...prev, error: 'Что-то пошло не так', isLoading: false, user: {}})); + } + }, [state]); + + useEffect(() => { + checkSession() + .catch((err) => { + logger.error(err); + }); + // eslint-disable-next-line + }, []); + + return {children}; +} + +export const UserConsumer = UserContext.Consumer; + diff --git a/front/src/hooks/useAlert.js b/front/src/hooks/useAlert.js new file mode 100644 index 0000000..7cfdaf8 --- /dev/null +++ b/front/src/hooks/useAlert.js @@ -0,0 +1,32 @@ +import {useSnackbar} from "notistack"; + +export function useAlert() { + // variant could be success, error, warning, info, or default + const {enqueueSnackbar} = useSnackbar(); + + function createAlert(message, variant) { + const options = { + ...variant, + anchorOrigin: {vertical: 'top', horizontal: 'right'}, + } + enqueueSnackbar(message, options); + } + + function notImplement() { + createAlert("Данный функционал пока не реализован", {variant: 'warning'}); + } + + function createError(message) { + createAlert(message, {variant: "error"}); + } + + function getError() { + createAlert("Ошибка получения данных", {variant: "error"}); + } + + function createSuccess(message) { + createAlert(message, {variant: "success"}); + } + + return {createAlert, notImplement, createError, getError, createSuccess} +} \ No newline at end of file diff --git a/front/src/hooks/useAuth.js b/front/src/hooks/useAuth.js new file mode 100644 index 0000000..d6d3585 --- /dev/null +++ b/front/src/hooks/useAuth.js @@ -0,0 +1,14 @@ +import * as React from 'react'; +import {AuthContext} from "../context/AuthContext"; + +export function useAuth() { + const context = React.useContext(AuthContext); + + if (!context) { + throw new Error('useAuth must be used within a AuthProvider'); + } + + window.auth = context; + + return context; +} diff --git a/front/src/hooks/usePopover.js b/front/src/hooks/usePopover.js new file mode 100644 index 0000000..1ebf06f --- /dev/null +++ b/front/src/hooks/usePopover.js @@ -0,0 +1,20 @@ +import * as React from 'react'; + +export function usePopover() { + const anchorRef = React.useRef(null); + const [open, setOpen] = React.useState(false); + + const handleOpen = React.useCallback(() => { + setOpen(true); + }, []); + + const handleClose = React.useCallback(() => { + setOpen(false); + }, []); + + const handleToggle = React.useCallback(() => { + setOpen((prevState) => !prevState); + }, []); + + return { anchorRef, handleClose, handleOpen, handleToggle, open }; +} diff --git a/front/src/hooks/useSelection.js b/front/src/hooks/useSelection.js new file mode 100644 index 0000000..fca9185 --- /dev/null +++ b/front/src/hooks/useSelection.js @@ -0,0 +1,47 @@ +import * as React from 'react'; + +// IMPORTANT: To prevent infinite loop, `keys` argument must be memoized with React.useMemo hook. +export function useSelection(keys) { + const [selected, setSelected] = React.useState(new Set()); + + React.useEffect(() => { + setSelected(new Set()); + }, [keys]); + + const handleDeselectAll = React.useCallback(() => { + setSelected(new Set()); + }, []); + + const handleDeselectOne = React.useCallback((key) => { + setSelected((prev) => { + const copy = new Set(prev); + copy.delete(key); + return copy; + }); + }, []); + + const handleSelectAll = React.useCallback(() => { + setSelected(new Set(keys)); + }, [keys]); + + const handleSelectOne = React.useCallback((key) => { + setSelected((prev) => { + const copy = new Set(prev); + copy.add(key); + return copy; + }); + }, []); + + const selectedAny = selected.size > 0; + const selectedAll = selected.size === keys.length; + + return { + deselectAll: handleDeselectAll, + deselectOne: handleDeselectOne, + selectAll: handleSelectAll, + selectOne: handleSelectOne, + selected, + selectedAny, + selectedAll, + }; +} diff --git a/front/src/hooks/useUser.js b/front/src/hooks/useUser.js new file mode 100644 index 0000000..94d30e2 --- /dev/null +++ b/front/src/hooks/useUser.js @@ -0,0 +1,13 @@ +import * as React from "react"; +import {UserContext} from "../context/UserContext"; + +export function useUser() { + const context = React.useContext(UserContext); + + if (!context) { + throw new Error('useUser must be used within a UserProvider'); + } + + window.user = context; + return context; +} \ No newline at end of file diff --git a/front/src/index.css b/front/src/index.css new file mode 100644 index 0000000..ec2585e --- /dev/null +++ b/front/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/front/src/index.js b/front/src/index.js new file mode 100644 index 0000000..d9d1f33 --- /dev/null +++ b/front/src/index.js @@ -0,0 +1,13 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './app/App'; +import './index.css'; +import '@fontsource/roboto/300.css'; +import '@fontsource/roboto/400.css'; +import '@fontsource/roboto/500.css'; +import '@fontsource/roboto/700.css'; + +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render( + +); \ No newline at end of file diff --git a/front/src/lib/DefaultLogger.js b/front/src/lib/DefaultLogger.js new file mode 100644 index 0000000..8f49dd6 --- /dev/null +++ b/front/src/lib/DefaultLogger.js @@ -0,0 +1,4 @@ +import {createLogger} from "./Logger"; +import {config} from "../Config"; + +export const logger = createLogger({ level: config.logLevel }); \ No newline at end of file diff --git a/front/src/lib/Logger.js b/front/src/lib/Logger.js new file mode 100644 index 0000000..e6c3719 --- /dev/null +++ b/front/src/lib/Logger.js @@ -0,0 +1,65 @@ +/* eslint-disable no-console -- Allow */ + +// NOTE: A tracking system such as Sentry should replace the console + +export const LogLevel = {NONE: 'NONE', ERROR: 'ERROR', WARN: 'WARN', DEBUG: 'DEBUG', ALL: 'ALL'}; + +const LogLevelNumber = {NONE: 0, ERROR: 1, WARN: 2, DEBUG: 3, ALL: 4}; + +export class Logger { + prefix; + level; + showLevel; + + levelNumber; + + constructor({prefix = '', level = LogLevel.ALL, showLevel = true}) { + this.prefix = prefix; + this.level = level; + this.levelNumber = LogLevelNumber[this.level]; + this.showLevel = showLevel; + } + + debug = (...args) => { + if (this.canWrite(LogLevel.DEBUG)) { + this.write(LogLevel.DEBUG, ...args); + } + }; + + warn = (...args) => { + if (this.canWrite(LogLevel.WARN)) { + this.write(LogLevel.WARN, ...args); + } + }; + + error = (...args) => { + if (this.canWrite(LogLevel.ERROR)) { + this.write(LogLevel.ERROR, ...args); + } + }; + + canWrite(level) { + return this.levelNumber >= LogLevelNumber[level]; + } + + write(level, ...args) { + let prefix = this.prefix; + + if (this.showLevel) { + prefix = `- ${level} ${prefix}`; + } + + if (level === LogLevel.ERROR) { + console.error(prefix, ...args); + } else { + console.log(prefix, ...args); + } + } +} + +// This can be extended to create context specific logger (Server Action, Router Handler, etc.) +// to add context information (IP, User-Agent, timestamp, etc.) + +export function createLogger({prefix, level} = {}) { + return new Logger({prefix, level}); +} diff --git a/front/src/lib/TokenUtil.js b/front/src/lib/TokenUtil.js new file mode 100644 index 0000000..5e84b11 --- /dev/null +++ b/front/src/lib/TokenUtil.js @@ -0,0 +1,34 @@ +import {decodeToken, isExpired} from "react-jwt"; +import {requests} from "../requests"; +import axios from "axios"; + +class TokenUtil { + + checkToken(token) { + if (token == null || isExpired(token)) { + return false; + } + + this.refreshToken(); + return true; + } + + getToken() { + return localStorage.getItem("token"); + } + + refreshToken() { + const decoded = decodeToken(this.getToken()); + const currentTime = Date.now() / 1000; + if (decoded.exp - currentTime > 43200) { + return + } + + axios.post(requests.auth.refresh, {}, {headers: {'Authorization': this.getToken()}}) + .then((r) => { + localStorage.setItem("token", r.data.token) + }) + } +} + +export const tokenUtil = new TokenUtil(); \ No newline at end of file diff --git a/front/src/lib/clients/AuthClient.js b/front/src/lib/clients/AuthClient.js new file mode 100644 index 0000000..f658a3d --- /dev/null +++ b/front/src/lib/clients/AuthClient.js @@ -0,0 +1,9 @@ +class AuthClient { + + async signOut() { + localStorage.removeItem("token"); + return {}; + } +} + +export const authClient = new AuthClient(); diff --git a/front/src/lib/clients/UserClient.js b/front/src/lib/clients/UserClient.js new file mode 100644 index 0000000..4602a18 --- /dev/null +++ b/front/src/lib/clients/UserClient.js @@ -0,0 +1,17 @@ +import {requests} from "../../requests"; +import {api} from "./api"; + +class UserClient { + + async getMe() { + try{ + let url = requests.users.getMe + const response = await api().get(url); + return {data: response.data} + } catch (e) { + return {errorData: e.data} + } + } +} + +export const userClient = new UserClient(); \ No newline at end of file diff --git a/front/src/lib/clients/api.js b/front/src/lib/clients/api.js new file mode 100644 index 0000000..7952708 --- /dev/null +++ b/front/src/lib/clients/api.js @@ -0,0 +1,16 @@ +import axios from "axios"; +import {tokenUtil} from "../TokenUtil"; + +// const host = "localhost:8080"; //дебаг вместе с беком +// const host = "192.168.1.100:8091"; //дебаг фронта +const host = "bar.kayashov.keenetic.pro"; //прод +export const api = () => { + const result = axios; + result.defaults.baseURL = `${window.location.protocol}//${host}/`; + if (tokenUtil.checkToken(tokenUtil.getToken())) { + result.defaults.headers.common["Authorization"] = "Bearer " + tokenUtil.getToken(); + } else { + delete result.defaults.headers.common + } + return result; +} \ No newline at end of file diff --git a/front/src/lib/getSiteUrl.js b/front/src/lib/getSiteUrl.js new file mode 100644 index 0000000..08f7091 --- /dev/null +++ b/front/src/lib/getSiteUrl.js @@ -0,0 +1,11 @@ +export function getSiteURL() { + let url = + process.env.NEXT_PUBLIC_SITE_URL ?? // Set this to your site URL in production env. + process.env.NEXT_PUBLIC_VERCEL_URL ?? // Automatically set by Vercel. + 'http://localhost:3000/'; + // Make sure to include `https://` when not localhost. + url = url.includes('http') ? url : `https://${url}`; + // Make sure to include a trailing `/`. + url = url.endsWith('/') ? url : `${url}/`; + return url; +} \ No newline at end of file diff --git a/front/src/lib/isNavItemActive.js b/front/src/lib/isNavItemActive.js new file mode 100644 index 0000000..9d87a82 --- /dev/null +++ b/front/src/lib/isNavItemActive.js @@ -0,0 +1,25 @@ +export function isNavItemActive({ + disabled, + external, + href, + matcher, + pathname, + }) { + if (disabled || !href || external) { + return false; + } + + if (matcher) { + if (matcher.type === 'startsWith') { + return pathname.startsWith(matcher.href); + } + + if (matcher.type === 'equals') { + return pathname === matcher.href; + } + + return false; + } + + return pathname === href; +} diff --git a/front/src/lib/sliceData.js b/front/src/lib/sliceData.js new file mode 100644 index 0000000..9032d39 --- /dev/null +++ b/front/src/lib/sliceData.js @@ -0,0 +1,18 @@ +export const sliceData = (rows, page, elementOnPage) => { + if (!rows || rows.length === 0) { + return []; + } + + const maxPage = Math.ceil(rows.length / elementOnPage); + // const start = (page - 1) * elementOnPage; + const start = 0; + console.log(maxPage, start) + let end; + if (page === maxPage) { + end = rows.length; + } else { + end = start + elementOnPage; + } + + return rows.slice(start, end); +} \ No newline at end of file diff --git a/front/src/logo.svg b/front/src/logo.svg new file mode 100644 index 0000000..1cf3608 --- /dev/null +++ b/front/src/logo.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/front/src/navItems.js b/front/src/navItems.js new file mode 100644 index 0000000..8bc706d --- /dev/null +++ b/front/src/navItems.js @@ -0,0 +1,14 @@ +import {paths} from "./path"; + +export const navItems = [ + {key: 'menu', title: 'Меню', href: paths.dashboard.overview, icon: 'menu'}, + {key: 'cocktailList', title: 'Коктейльная база', href: paths.bar.cocktails, icon: 'list'}, + {key: 'myOrders', title: "Мои заказы", href: paths.orders.my, icon: 'wallet'}, + {key: 'myBar', title: "Мои бары", href: paths.bar.list, icon: 'storefront'}, + {key: 'queue', title: 'Очередь заказов', href: paths.bar.ordersQueue, icon: 'orders', forBarmen: true}, + {key: 'ingredients', title: 'Ингредиенты в баре', href: paths.bar.ingredients, icon: 'basket', forBarmen: true}, + {key: 'visitors', title: "Посетители", href: paths.visitor.inBar, icon: 'visitors', forBarmen: true}, + {key: 'editMenu', title: "Редактировать меню", href: paths.bar.menu, icon: 'menu', forBarmen: true}, + {key: 'ingredientEdit', title: 'Ингредиенты', href: paths.bar.ingredientEdit, icon: 'ingredients', forAdmin: true}, + {key: 'cocktailEdit', title: 'Коктейли', href: paths.bar.cocktailEdit, icon: 'cocktail', forAdmin: true} +]; diff --git a/front/src/path.js b/front/src/path.js new file mode 100644 index 0000000..34913c1 --- /dev/null +++ b/front/src/path.js @@ -0,0 +1,24 @@ +export const paths = { + home: '/', + auth: {signIn: '/auth/sign-in', bot: 'https://t.me/kayashovBarClientBot', tg: '/tg'}, + dashboard: { + overview: '/menu' + }, + visitor: { + inBar: "/visitors" + }, + orders: { + my: '/orders' + }, + bar: { + list: "/barList", + ordersQueue: '/queue', + ingredients: '/ingredients', + cocktails: "/cocktails", + ingredientEdit: '/ingredients/edit', + cocktailEdit: '/cocktail/edit', + menu: '/menuList' + }, + errors: {notFound: '/errors/not-found'}, + notFound: '*', +}; \ No newline at end of file diff --git a/front/src/requests.js b/front/src/requests.js new file mode 100644 index 0000000..df20a65 --- /dev/null +++ b/front/src/requests.js @@ -0,0 +1,67 @@ +const host = "api/"; + +const routes = { + auth: host + "auth/", + users: host + "users/", + operations: host + "operations/", + bar: host + "bar/", + session: host + "bar/session", + ingredient: host + "ingredient", + order: host + "order", + cocktails: host + "cocktail", + visitor: host + "visitors" +} + +export const requests = { + auth: { + login: routes.auth + "login", + refresh: routes.auth + "refresh", + singOut: "signOut" + }, + cocktails: { + menu: routes.cocktails + "/menu", + simple: routes.cocktails + "/simple", + cocktail: routes.cocktails + "?id=", + modal: routes.cocktails + "/modal?id=", + edit: routes.cocktails, + savePhoto: routes.cocktails + "/photo", + favourite: routes.cocktails + "/favourite?id=", + rating: routes.cocktails + "/rating?id=", + receipts: routes.cocktails + "/receipts?id=" + }, + visitors: { + all: routes.visitor, + invite: routes.visitor + "/invite?" + }, + bar: { + list: routes.bar + "list", + addToMyList: routes.bar + "addToMyList", + enter: routes.bar + "enter?id=", + pay: routes.order + "?", + order: routes.order, + myOrders: routes.order + "/my", + purchases: routes.bar + "purchases", + menu: routes.bar + "menu", + ingredients: routes.ingredient, + ingredientSimple: routes.ingredient + "/simple", + ingredient: routes.ingredient, + ingredientList: routes.ingredient + "/all", + glass: routes.bar + "glass", + category: routes.bar + "category", + receipts: routes.bar + "receipt?id=", + tags: routes.bar + "tags", + type: routes.ingredient + "/type", + session: { + status: routes.session + "/info", + change: routes.session + }, + unit: routes.bar + "units" + }, + users: { + getMe: routes.bar + "getMe", + }, + operations: { + getAll: routes.operations, + create: routes.operations, + } +} \ No newline at end of file diff --git a/front/src/styles/global.css b/front/src/styles/global.css new file mode 100644 index 0000000..cdb39ef --- /dev/null +++ b/front/src/styles/global.css @@ -0,0 +1,33 @@ +/* Remove if fonts are not used */ +@import '~@fontsource/inter/100.css'; +@import '~@fontsource/inter/200.css'; +@import '~@fontsource/inter/300.css'; +@import '~@fontsource/inter/400.css'; +@import '~@fontsource/inter/500.css'; +@import '~@fontsource/inter/600.css'; +@import '~@fontsource/inter/700.css'; +@import '~@fontsource/inter/800.css'; +@import '~@fontsource/inter/900.css'; +@import '~@fontsource/roboto-mono/300.css'; +@import '~@fontsource/roboto-mono/400.css'; +@import '~@fontsource/plus-jakarta-sans/600.css'; +@import '~@fontsource/plus-jakarta-sans/700.css'; + +/* Variables */ +:root { + --icon-fontSize-sm: 1rem; + --icon-fontSize-md: 1.25rem; + --icon-fontSize-lg: 1.5rem; +} + +*:focus-visible { + outline: 2px solid var(--mui-palette-primary-main); +} + +html { + height: 100%; +} + +body { + height: 100%; +} \ No newline at end of file diff --git a/front/src/styles/theme/color-schemes.js b/front/src/styles/theme/color-schemes.js new file mode 100644 index 0000000..ffc4ead --- /dev/null +++ b/front/src/styles/theme/color-schemes.js @@ -0,0 +1,140 @@ +import {california, kepple, neonBlue, nevada, redOrange, shakespeare, stormGrey} from './colors'; + +export const colorSchemes = { + dark: { + palette: { + action: {disabledBackground: 'rgba(0, 0, 0, 0.12)'}, + background: { + default: 'var(--mui-palette-neutral-950)', + defaultChannel: '9 10 11', + paper: 'var(--mui-palette-neutral-900)', + paperChannel: '19 78 72', + level1: 'var(--mui-palette-neutral-800)', + level2: 'var(--mui-palette-neutral-700)', + level3: 'var(--mui-palette-neutral-600)', + }, + mode: 'dark', + common: {black: '#000000', white: '#ffffff'}, + divider: 'var(--mui-palette-neutral-700)', + dividerChannel: '50 56 62', + error: { + ...redOrange, + light: redOrange[300], + main: redOrange[400], + dark: redOrange[500], + contrastText: 'var(--mui-palette-common-black)', + }, + info: { + ...shakespeare, + light: shakespeare[300], + main: shakespeare[400], + dark: shakespeare[500], + contrastText: 'var(--mui-palette-common-black)', + }, + neutral: {...nevada}, + primary: { + ...neonBlue, + light: neonBlue[300], + main: neonBlue[400], + dark: neonBlue[500], + contrastText: 'var(--mui-palette-common-black)', + }, + secondary: { + ...nevada, + light: nevada[100], + main: nevada[200], + dark: nevada[300], + contrastText: 'var(--mui-palette-common-black)', + }, + success: { + ...kepple, + light: kepple[300], + main: kepple[400], + dark: kepple[500], + contrastText: 'var(--mui-palette-common-black)', + }, + text: { + primary: 'var(--mui-palette-neutral-100)', + primaryChannel: '240 244 248', + secondary: 'var(--mui-palette-neutral-400)', + secondaryChannel: '159 166 173', + disabled: 'var(--mui-palette-neutral-600)', + }, + warning: { + ...california, + light: california[300], + main: california[400], + dark: california[500], + contrastText: 'var(--mui-palette-common-black)', + }, + }, + }, + light: { + palette: { + action: {disabledBackground: 'rgba(0, 0, 0, 0.06)'}, + background: { + default: 'var(--mui-palette-common-white)', + defaultChannel: '255 255 255', + paper: 'var(--mui-palette-common-white)', + paperChannel: '255 255 255', + level1: 'var(--mui-palette-neutral-50)', + level2: 'var(--mui-palette-neutral-100)', + level3: 'var(--mui-palette-neutral-200)', + }, + mode: 'light', + common: {black: '#000000', white: '#ffffff'}, + divider: 'var(--mui-palette-neutral-200)', + dividerChannel: '220 223 228', + error: { + ...redOrange, + light: redOrange[400], + main: redOrange[500], + dark: redOrange[600], + contrastText: 'var(--mui-palette-common-white)', + }, + info: { + ...shakespeare, + light: shakespeare[400], + main: shakespeare[500], + dark: shakespeare[600], + contrastText: 'var(--mui-palette-common-white)', + }, + neutral: {...stormGrey}, + primary: { + ...neonBlue, + light: neonBlue[400], + main: neonBlue[500], + dark: neonBlue[600], + contrastText: 'var(--mui-palette-common-white)', + }, + secondary: { + ...nevada, + light: nevada[600], + main: nevada[700], + dark: nevada[800], + contrastText: 'var(--mui-palette-common-white)', + }, + success: { + ...kepple, + light: kepple[400], + main: kepple[500], + dark: kepple[600], + contrastText: 'var(--mui-palette-common-white)', + }, + text: { + primary: 'var(--mui-palette-neutral-900)', + primaryChannel: '33 38 54', + secondary: 'var(--mui-palette-neutral-500)', + secondaryChannel: '102 112 133', + disabled: 'var(--mui-palette-neutral-400)', + }, + warning: { + ...california, + light: california[400], + main: california[500], + dark: california[600], + contrastText: 'var(--mui-palette-common-white)', + }, + }, + }, +}; diff --git a/front/src/styles/theme/colors.js b/front/src/styles/theme/colors.js new file mode 100644 index 0000000..1f308cc --- /dev/null +++ b/front/src/styles/theme/colors.js @@ -0,0 +1,97 @@ +export const california = { + 50: '#fffaea', + 100: '#fff3c6', + 200: '#ffe587', + 300: '#ffd049', + 400: '#ffbb1f', + 500: '#fb9c0c', + 600: '#de7101', + 700: '#b84d05', + 800: '#953b0b', + 900: '#7b310c', + 950: '#471701', +}; + +export const kepple = { + 50: '#f0fdfa', + 100: '#ccfbef', + 200: '#9af5e1', + 300: '#5fe9ce', + 400: '#2ed3b8', + 500: '#15b79f', + 600: '#0e9382', + 700: '#107569', + 800: '#115e56', + 900: '#134e48', + 950: '#042f2c', +}; + +export const neonBlue = { + 50: '#ecf0ff', + 100: '#dde3ff', + 200: '#c2cbff', + 300: '#9ca7ff', + 400: '#7578ff', + 500: '#635bff', + 600: '#4e36f5', + 700: '#432ad8', + 800: '#3725ae', + 900: '#302689', + 950: '#1e1650', +}; + +export const nevada = { + 50: '#fbfcfe', + 100: '#f0f4f8', + 200: '#dde7ee', + 300: '#cdd7e1', + 400: '#9fa6ad', + 500: '#636b74', + 600: '#555e68', + 700: '#32383e', + 800: '#202427', + 900: '#121517', + 950: '#090a0b', +}; + +export const redOrange = { + 50: '#fef3f2', + 100: '#fee4e2', + 200: '#ffcdc9', + 300: '#fdaaa4', + 400: '#f97970', + 500: '#f04438', + 600: '#de3024', + 700: '#bb241a', + 800: '#9a221a', + 900: '#80231c', + 950: '#460d09', +}; + +export const shakespeare = { + 50: '#ecfdff', + 100: '#cff7fe', + 200: '#a4eefd', + 300: '#66e0fa', + 400: '#10bee8', + 500: '#04aad6', + 600: '#0787b3', + 700: '#0d6d91', + 800: '#145876', + 900: '#154964', + 950: '#082f44', +}; + +export const stormGrey = { + 50: '#f9fafb', + 100: '#f1f1f4', + 200: '#dcdfe4', + 300: '#b3b9c6', + 400: '#8a94a6', + 500: '#667085', + 600: '#565e73', + 700: '#434a60', + 800: '#313749', + 900: '#212636', + 950: '#121621', +}; diff --git a/front/src/styles/theme/components/avatar.js b/front/src/styles/theme/components/avatar.js new file mode 100644 index 0000000..2d44807 --- /dev/null +++ b/front/src/styles/theme/components/avatar.js @@ -0,0 +1,3 @@ +export const MuiAvatar = { + styleOverrides: { root: { fontSize: '14px', fontWeight: 600, letterSpacing: 0 } }, +}; diff --git a/front/src/styles/theme/components/button.js b/front/src/styles/theme/components/button.js new file mode 100644 index 0000000..96e164f --- /dev/null +++ b/front/src/styles/theme/components/button.js @@ -0,0 +1,11 @@ +export const MuiButton = { + styleOverrides: { + root: {borderRadius: '12px', textTransform: 'none'}, + sizeSmall: {padding: '6px 16px'}, + sizeMedium: {padding: '8px 20px'}, + sizeLarge: {padding: '11px 24px'}, + textSizeSmall: {padding: '7px 12px'}, + textSizeMedium: {padding: '9px 16px'}, + textSizeLarge: {padding: '12px 16px'}, + }, +}; diff --git a/front/src/styles/theme/components/card-content.js b/front/src/styles/theme/components/card-content.js new file mode 100644 index 0000000..6c16cff --- /dev/null +++ b/front/src/styles/theme/components/card-content.js @@ -0,0 +1,3 @@ +export const MuiCardContent = { + styleOverrides: {root: {padding: '32px 24px', '&:last-child': {paddingBottom: '32px'}}}, +}; diff --git a/front/src/styles/theme/components/card-header.js b/front/src/styles/theme/components/card-header.js new file mode 100644 index 0000000..0d621de --- /dev/null +++ b/front/src/styles/theme/components/card-header.js @@ -0,0 +1,4 @@ +export const MuiCardHeader = { + defaultProps: {titleTypographyProps: {variant: 'h6'}, subheaderTypographyProps: {variant: 'body2'}}, + styleOverrides: {root: {padding: '32px 24px 16px'}}, +}; diff --git a/front/src/styles/theme/components/card.js b/front/src/styles/theme/components/card.js new file mode 100644 index 0000000..c62df39 --- /dev/null +++ b/front/src/styles/theme/components/card.js @@ -0,0 +1,17 @@ +import {paperClasses} from '@mui/material/Paper'; + +export const MuiCard = { + styleOverrides: { + root: ({theme}) => { + return { + borderRadius: '20px', + [`&.${paperClasses.elevation1}`]: { + boxShadow: + theme.palette.mode === 'dark' + ? '0 5px 22px 0 rgba(0, 0, 0, 0.24), 0 0 0 1px rgba(255, 255, 255, 0.12)' + : '0 5px 22px 0 rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.06)', + }, + }; + }, + }, +}; diff --git a/front/src/styles/theme/components/components.js b/front/src/styles/theme/components/components.js new file mode 100644 index 0000000..cc511ef --- /dev/null +++ b/front/src/styles/theme/components/components.js @@ -0,0 +1,25 @@ +import {MuiAvatar} from './avatar'; +import {MuiButton} from "./button"; +import {MuiCard} from "./card"; +import {MuiCardContent} from "./card-content"; +import {MuiCardHeader} from "./card-header"; +import {MuiLink} from "./link"; +import {MuiStack} from "./stack"; +import {MuiTab} from "./tab"; +import {MuiTableBody} from "./table-body"; +import {MuiTableCell} from "./table-cell"; +import {MuiTableHead} from "./table-head"; + +export const components = { + MuiAvatar, + MuiButton, + MuiCard, + MuiCardContent, + MuiCardHeader, + MuiLink, + MuiStack, + MuiTab, + MuiTableBody, + MuiTableCell, + MuiTableHead, +}; diff --git a/front/src/styles/theme/components/link.js b/front/src/styles/theme/components/link.js new file mode 100644 index 0000000..5539679 --- /dev/null +++ b/front/src/styles/theme/components/link.js @@ -0,0 +1,8 @@ +export const MuiLink = { + defaultProps: {underline: 'hover'}, + styleOverrides: { + root: { + color: 'var(--mui-palette-text-primary)' + } + } +}; diff --git a/front/src/styles/theme/components/stack.js b/front/src/styles/theme/components/stack.js new file mode 100644 index 0000000..254df52 --- /dev/null +++ b/front/src/styles/theme/components/stack.js @@ -0,0 +1 @@ +export const MuiStack = {defaultProps: {useFlexGap: true}}; diff --git a/front/src/styles/theme/components/tab.js b/front/src/styles/theme/components/tab.js new file mode 100644 index 0000000..6455cfd --- /dev/null +++ b/front/src/styles/theme/components/tab.js @@ -0,0 +1,14 @@ +export const MuiTab = { + styleOverrides: { + root: { + fontSize: '14px', + fontWeight: 500, + lineHeight: 1.71, + minWidth: 'auto', + paddingLeft: 0, + paddingRight: 0, + textTransform: 'none', + '& + &': {marginLeft: '24px'}, + }, + }, +}; diff --git a/front/src/styles/theme/components/table-body.js b/front/src/styles/theme/components/table-body.js new file mode 100644 index 0000000..1caa107 --- /dev/null +++ b/front/src/styles/theme/components/table-body.js @@ -0,0 +1,10 @@ +import {tableCellClasses} from '@mui/material/TableCell'; +import {tableRowClasses} from '@mui/material/TableRow'; + +export const MuiTableBody = { + styleOverrides: { + root: { + [`& .${tableRowClasses.root}:last-child`]: {[`& .${tableCellClasses.root}`]: {'--TableCell-borderWidth': 0}}, + }, + }, +}; diff --git a/front/src/styles/theme/components/table-cell.js b/front/src/styles/theme/components/table-cell.js new file mode 100644 index 0000000..4410e82 --- /dev/null +++ b/front/src/styles/theme/components/table-cell.js @@ -0,0 +1,6 @@ +export const MuiTableCell = { + styleOverrides: { + root: {borderBottom: 'var(--TableCell-borderWidth, 1px) solid var(--mui-palette-TableCell-border)'}, + paddingCheckbox: {padding: '0 0 0 24px'}, + }, +}; diff --git a/front/src/styles/theme/components/table-head.js b/front/src/styles/theme/components/table-head.js new file mode 100644 index 0000000..9d633a9 --- /dev/null +++ b/front/src/styles/theme/components/table-head.js @@ -0,0 +1,13 @@ +import {tableCellClasses} from '@mui/material/TableCell'; + +export const MuiTableHead = { + styleOverrides: { + root: { + [`& .${tableCellClasses.root}`]: { + backgroundColor: 'var(--mui-palette-background-level1)', + color: 'var(--mui-palette-text-secondary)', + lineHeight: 1, + }, + }, + }, +}; diff --git a/front/src/styles/theme/create-theme.js b/front/src/styles/theme/create-theme.js new file mode 100644 index 0000000..535bbd9 --- /dev/null +++ b/front/src/styles/theme/create-theme.js @@ -0,0 +1,16 @@ +import {experimental_extendTheme as extendTheme} from '@mui/material/styles'; +import {components} from "./components/components"; +import shadows from "@mui/material/styles/shadows"; +import {typography} from "./typography"; +import {colorSchemes} from "./color-schemes"; + +export function createTTheme() { + return extendTheme({ + breakpoints: {values: {xs: 0, sm: 450, md: 600, lg: 900, xl: 1440}}, + colorSchemes: colorSchemes, + components: components, + shadows: shadows, + shape: {borderRadius: 8}, + typography: typography, + }); +} diff --git a/front/src/styles/theme/shadows.js b/front/src/styles/theme/shadows.js new file mode 100644 index 0000000..4bd2235 --- /dev/null +++ b/front/src/styles/theme/shadows.js @@ -0,0 +1,27 @@ +export const shadows = [ + 'none', + '0px 1px 2px rgba(0, 0, 0, 0.08)', + '0px 1px 5px rgba(0, 0, 0, 0.08)', + '0px 1px 8px rgba(0, 0, 0, 0.08)', + '0px 1px 10px rgba(0, 0, 0, 0.08)', + '0px 1px 14px rgba(0, 0, 0, 0.08)', + '0px 1px 18px rgba(0, 0, 0, 0.08)', + '0px 2px 16px rgba(0, 0, 0, 0.08)', + '0px 3px 14px rgba(0, 0, 0, 0.08)', + '0px 3px 16px rgba(0, 0, 0, 0.08)', + '0px 4px 18px rgba(0, 0, 0, 0.08)', + '0px 4px 20px rgba(0, 0, 0, 0.08)', + '0px 5px 22px rgba(0, 0, 0, 0.08)', + '0px 5px 24px rgba(0, 0, 0, 0.08)', + '0px 5px 26px rgba(0, 0, 0, 0.08)', + '0px 6px 28px rgba(0, 0, 0, 0.08)', + '0px 6px 30px rgba(0, 0, 0, 0.08)', + '0px 6px 32px rgba(0, 0, 0, 0.08)', + '0px 7px 34px rgba(0, 0, 0, 0.08)', + '0px 7px 36px rgba(0, 0, 0, 0.08)', + '0px 8px 38px rgba(0, 0, 0, 0.08)', + '0px 8px 40px rgba(0, 0, 0, 0.08)', + '0px 8px 42px rgba(0, 0, 0, 0.08)', + '0px 9px 44px rgba(0, 0, 0, 0.08)', + '0px 9px 46px rgba(0, 0, 0, 0.08)', +]; diff --git a/front/src/styles/theme/types.d.ts b/front/src/styles/theme/types.d.ts new file mode 100644 index 0000000..f0c944e --- /dev/null +++ b/front/src/styles/theme/types.d.ts @@ -0,0 +1,6 @@ +import type { CssVarsTheme } from '@mui/material/styles'; +import type { Theme as BaseTheme } from '@mui/material/styles/createTheme'; + +export type Theme = Omit & CssVarsTheme; + +export type ColorScheme = 'dark' | 'light'; diff --git a/front/src/styles/theme/typography.js b/front/src/styles/theme/typography.js new file mode 100644 index 0000000..588adc4 --- /dev/null +++ b/front/src/styles/theme/typography.js @@ -0,0 +1,23 @@ +export const typography = { + fontFamily: + '"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"', + body1: {fontSize: '1rem', fontWeight: 400, lineHeight: 1.5}, + body2: {fontSize: '0.875rem', fontWeight: 400, lineHeight: 1.57}, + button: {fontWeight: 500}, + caption: {fontSize: '0.75rem', fontWeight: 400, lineHeight: 1.66}, + subtitle1: {fontSize: '1rem', fontWeight: 500, lineHeight: 1.57}, + subtitle2: {fontSize: '0.875rem', fontWeight: 500, lineHeight: 1.57}, + overline: { + fontSize: '0.75rem', + fontWeight: 500, + letterSpacing: '0.5px', + lineHeight: 2.5, + textTransform: 'uppercase', + }, + h1: {fontSize: '3.5rem', fontWeight: 500, lineHeight: 1.2}, + h2: {fontSize: '3rem', fontWeight: 500, lineHeight: 1.2}, + h3: {fontSize: '2.25rem', fontWeight: 500, lineHeight: 1.2}, + h4: {fontSize: '2rem', fontWeight: 500, lineHeight: 1.2}, + h5: {fontSize: '1.5rem', fontWeight: 500, lineHeight: 1.2}, + h6: {fontSize: '1.125rem', fontWeight: 500, lineHeight: 1.2}, +}; diff --git a/src/main/java/ru/kayashov/bar/MyBarApplication.java b/src/main/java/ru/kayashov/bar/MyBarApplication.java new file mode 100644 index 0000000..2823bf0 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/MyBarApplication.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class MyBarApplication { + + public static void main(String[] args) { + SpringApplication.run(MyBarApplication.class, args); + } + +} diff --git a/src/main/java/ru/kayashov/bar/bot/annotation/CommandData.java b/src/main/java/ru/kayashov/bar/bot/annotation/CommandData.java new file mode 100644 index 0000000..2ab6144 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/annotation/CommandData.java @@ -0,0 +1,15 @@ +package ru.kayashov.bar.bot.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Аннотация для пометки команд бота + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface CommandData { + String name(); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/bot/annotation/FilterTitle.java b/src/main/java/ru/kayashov/bar/bot/annotation/FilterTitle.java new file mode 100644 index 0000000..31e51bf --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/annotation/FilterTitle.java @@ -0,0 +1,12 @@ +package ru.kayashov.bar.bot.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface FilterTitle { + String title(); +} diff --git a/src/main/java/ru/kayashov/bar/bot/config/TelegramBotConfig.java b/src/main/java/ru/kayashov/bar/bot/config/TelegramBotConfig.java new file mode 100644 index 0000000..66a0b71 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/config/TelegramBotConfig.java @@ -0,0 +1,28 @@ +package ru.kayashov.bar.bot.config; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.telegram.telegrambots.meta.TelegramBotsApi; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import org.telegram.telegrambots.updatesreceivers.DefaultBotSession; + +@Slf4j +@Configuration +@RequiredArgsConstructor +public class TelegramBotConfig { + + private final TelegramExecutorBot bot; + + @Bean + TelegramBotsApi telegramBotsApi() throws TelegramApiException { + TelegramBotsApi telegramBotsApi = new TelegramBotsApi(DefaultBotSession.class); + try { + telegramBotsApi.registerBot(bot); + } catch (TelegramApiException e) { + log.error("Bot did not register", e); + } + return telegramBotsApi; + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/config/TelegramBotMapper.java b/src/main/java/ru/kayashov/bar/bot/config/TelegramBotMapper.java new file mode 100644 index 0000000..b91b043 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/config/TelegramBotMapper.java @@ -0,0 +1,41 @@ +package ru.kayashov.bar.bot.config; + +import org.telegram.telegrambots.meta.api.objects.CallbackQuery; +import org.telegram.telegrambots.meta.api.objects.Chat; +import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.objects.Update; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboardMarkup; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.InlineKeyboardButton; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.KeyboardRow; +import ru.kayashov.bar.bot.domain.model.AbstractCallbackQuery; +import ru.kayashov.bar.bot.domain.model.AbstractChat; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboard; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboardButton; +import ru.kayashov.bar.bot.domain.model.AbstractMessage; +import ru.kayashov.bar.bot.domain.model.AbstractUpdate; + +import java.util.List; + +public interface TelegramBotMapper { + + AbstractUpdate toAbstractUpdate(Update update); + + AbstractMessage toAbstractMessage(Message message); + + AbstractCallbackQuery toAbstractCallbackQuery(CallbackQuery query); + + AbstractChat toAbstractChat(Chat chat); + + InlineKeyboardMarkup toInlineKeyboard(AbstractKeyboard replyKeyboard); + + ReplyKeyboardMarkup toReplyKeyboard(AbstractKeyboard replyKeyboard); + + List> toInlineKeyboard(List> buttons); + + List toListButtons(List buttons); + + List toKeyboardRows(List> rows); + + KeyboardRow toKeyboardRow(List row); +} diff --git a/src/main/java/ru/kayashov/bar/bot/config/TelegramBotMapperImpl.java b/src/main/java/ru/kayashov/bar/bot/config/TelegramBotMapperImpl.java new file mode 100644 index 0000000..bfb6b56 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/config/TelegramBotMapperImpl.java @@ -0,0 +1,128 @@ +package ru.kayashov.bar.bot.config; + +import org.springframework.stereotype.Component; +import org.telegram.telegrambots.meta.api.objects.CallbackQuery; +import org.telegram.telegrambots.meta.api.objects.Chat; +import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.objects.Update; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.InlineKeyboardMarkup; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboardMarkup; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.InlineKeyboardButton; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.buttons.KeyboardRow; +import ru.kayashov.bar.bot.domain.model.AbstractCallbackQuery; +import ru.kayashov.bar.bot.domain.model.AbstractChat; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboard; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboardButton; +import ru.kayashov.bar.bot.domain.model.AbstractMessage; +import ru.kayashov.bar.bot.domain.model.AbstractUpdate; + +import java.util.List; + +@Component +public class TelegramBotMapperImpl implements TelegramBotMapper { + + @Override + public AbstractUpdate toAbstractUpdate(Update update) { + if (update == null) return null; + + AbstractUpdate abstractUpdate = new AbstractUpdate(); + + abstractUpdate.setMessage(toAbstractMessage(update.getMessage())); + abstractUpdate.setCallbackQuery(toAbstractCallbackQuery(update.getCallbackQuery())); + + return abstractUpdate; + } + + @Override + public AbstractMessage toAbstractMessage(Message message) { + if (message == null) { + return null; + } + AbstractMessage abstractMessage = new AbstractMessage(); + + abstractMessage.setMessage(message.getText()); + abstractMessage.setMessageId(message.getMessageId()); + abstractMessage.setChat(toAbstractChat(message.getChat())); + abstractMessage.setChatId(message.getChatId()); + + return abstractMessage; + } + + @Override + public AbstractCallbackQuery toAbstractCallbackQuery(CallbackQuery query) { + if (query == null) { + return null; + } + AbstractCallbackQuery callbackQuery = new AbstractCallbackQuery(); + callbackQuery.setData(query.getData()); + callbackQuery.setMessage(toAbstractMessage(query.getMessage())); + return callbackQuery; + } + + @Override + public AbstractChat toAbstractChat(Chat chat) { + if (chat == null) { + return null; + } + AbstractChat abstractChat = new AbstractChat(); + abstractChat.setId(chat.getId()); + abstractChat.setFirstName(chat.getFirstName()); + abstractChat.setLastName(chat.getLastName()); + return abstractChat; + } + + @Override + public InlineKeyboardMarkup toInlineKeyboard(AbstractKeyboard replyKeyboard) { + InlineKeyboardMarkup inlineKeyboardMarkup = new InlineKeyboardMarkup(); + + inlineKeyboardMarkup.setKeyboard(toInlineKeyboard(replyKeyboard.getKeyboard())); + + return inlineKeyboardMarkup; + } + + @Override + public ReplyKeyboardMarkup toReplyKeyboard(AbstractKeyboard replyKeyboard) { + return ReplyKeyboardMarkup.builder() + .keyboard(toKeyboardRows(replyKeyboard.getKeyboard())) + .resizeKeyboard(replyKeyboard.getResizeKeyboard()) + .inputFieldPlaceholder(replyKeyboard.getInputFieldPlaceholder()) + .oneTimeKeyboard(replyKeyboard.getOneTimeKeyboard()) + .selective(replyKeyboard.getSelective()) + .build(); + } + + @Override + public List> toInlineKeyboard(List> buttons) { + return buttons.stream() + .map(this::toListButtons) + .toList(); + } + + @Override + public List toListButtons(List buttons) { + return buttons.stream().map(this::toInlineKeyboardButton).toList(); + } + + private InlineKeyboardButton toInlineKeyboardButton(AbstractKeyboardButton button) { + InlineKeyboardButton inlineKeyboardButton = new InlineKeyboardButton(); + + inlineKeyboardButton.setCallbackData(button.getCallbackData()); + inlineKeyboardButton.setText(button.getText()); + + return inlineKeyboardButton; + } + + @Override + public List toKeyboardRows(List> rows) { + return rows.stream() + .map(this::toKeyboardRow) + .toList(); + } + + @Override + public KeyboardRow toKeyboardRow(List row) { + KeyboardRow keyboardRow = new KeyboardRow(); + row.forEach(b -> keyboardRow.add(b.getText())); + return keyboardRow; + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/config/TelegramBotProperty.java b/src/main/java/ru/kayashov/bar/bot/config/TelegramBotProperty.java new file mode 100644 index 0000000..18b5b73 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/config/TelegramBotProperty.java @@ -0,0 +1,17 @@ +package ru.kayashov.bar.bot.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Setter +@Getter +@Component +@ConfigurationProperties(prefix = "telegram.bot") +public class TelegramBotProperty { + + private String username; + + private String botToken; +} diff --git a/src/main/java/ru/kayashov/bar/bot/config/TelegramExecutorBot.java b/src/main/java/ru/kayashov/bar/bot/config/TelegramExecutorBot.java new file mode 100644 index 0000000..0222ead --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/config/TelegramExecutorBot.java @@ -0,0 +1,138 @@ +package ru.kayashov.bar.bot.config; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import org.telegram.telegrambots.bots.TelegramLongPollingBot; +import org.telegram.telegrambots.meta.api.methods.send.SendMessage; +import org.telegram.telegrambots.meta.api.methods.updatingmessages.DeleteMessage; +import org.telegram.telegrambots.meta.api.objects.Message; +import org.telegram.telegrambots.meta.api.objects.Update; +import org.telegram.telegrambots.meta.api.objects.User; +import org.telegram.telegrambots.meta.api.objects.replykeyboard.ReplyKeyboard; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import ru.kayashov.bar.bot.domain.Bot; +import ru.kayashov.bar.bot.domain.command.CommandContainer; +import ru.kayashov.bar.bot.domain.command.api.Command; +import ru.kayashov.bar.bot.domain.methods.AbstractDeleteMessage; +import ru.kayashov.bar.bot.domain.methods.AbstractInlineKeyboard; +import ru.kayashov.bar.bot.domain.methods.AbstractMethod; +import ru.kayashov.bar.bot.domain.methods.AbstractSendKeyboardMessage; +import ru.kayashov.bar.bot.domain.methods.AbstractSendMessage; +import ru.kayashov.bar.bot.domain.model.AbstractUpdate; + +import java.util.List; + +@Slf4j +@Component +@RequiredArgsConstructor +public class TelegramExecutorBot extends TelegramLongPollingBot implements Bot { + + private final TelegramBotMapper mapper; + private final TelegramBotProperty botConfig; + private final CommandContainer commandContainer; + + @Override + public String getBotUsername() { + return botConfig.getUsername(); + } + + @Override + public String getBotToken() { + return botConfig.getBotToken(); + } + + @Override + public void onUpdateReceived(Update update) { + if (update.hasMessage()) { + Message reply = update.getMessage().getReplyToMessage(); + if (reply != null) { + String text = update.getMessage().getText(); + String data = "Cocktail:jump:" + text + ":" + reply.getMessageId(); + AbstractUpdate message = mapper.toAbstractUpdate(update); + message.getMessage().setMessage(data); + methodExecute(commandContainer.retrieveCommand("Cocktail").execute(message)); + return; + } + if (update.hasMessage()) { + String data = update.getMessage().getText(); + int dot = data.indexOf(':'); + if (dot > -1) { + data = data.substring(0, data.indexOf(":")); + } + methodExecute(commandContainer + .retrieveCommand(data) + .execute(mapper.toAbstractUpdate(update))); + } + } else if (update.hasCallbackQuery() && !update.getCallbackQuery().getData().equals("null")) { + String callbackData = update.getCallbackQuery().getData(); + String callbackCommand = callbackData.substring(0, callbackData.indexOf(":"));/*.replace("{\"", "");*/ + Command command = commandContainer.retrieveCommand(callbackCommand); + List methods = command.execute(mapper.toAbstractUpdate(update)); + methodExecute(methods); + } + } + + @Override + public void sendMessage(AbstractSendMessage message) { + SendMessage sendMessage = SendMessage.builder() + .chatId(message.getChatId()) + .text(message.getMessage()) + .parseMode("HTML") + .build(); + try { + execute(sendMessage); + log.info("AbstractMessage successfully sent to chat with id {}", message.getChatId()); + } catch (TelegramApiException e) { + log.error("AbstractMessage {} didn't send to chat with id {}", message, message.getChatId(), e); + } + } + + @Override + public void sendKeyboardMessage(AbstractSendKeyboardMessage message) { + send(getMessage(message.getChatId(), message.getMessage(), mapper.toReplyKeyboard(message.getKeyboard()))); + } + + @Override + public void sendInlineKeyboard(AbstractInlineKeyboard message) { + send(getMessage(message.getChatId(), message.getMessage(), mapper.toInlineKeyboard(message.getKeyboard()))); + } + + @Override + public void deleteMessage(AbstractDeleteMessage message) { + delete(getDeleteMessage(message.getChatId(), message.getMessageId())); + } + + private SendMessage getMessage(Long chatId, String message, ReplyKeyboard replyKeyboard) { + return SendMessage.builder() + .chatId(chatId) + .text(message) + .parseMode("HTML") + .replyMarkup(replyKeyboard) + .build(); + } + + private DeleteMessage getDeleteMessage(Long chatId, Integer messageId) { + return DeleteMessage.builder() + .chatId(chatId) + .messageId(messageId) + .build(); + } + + private void delete(DeleteMessage abstractDeleteMessage) { + try { + execute(abstractDeleteMessage); + } catch (TelegramApiException e) { + e.printStackTrace(); + } + } + + private void send(SendMessage sendMessage) { + try { + execute(sendMessage); + log.info("AbstractMessage {} successfully sent to chat with id {}", sendMessage.getText(), sendMessage.getChatId()); + } catch (TelegramApiException e) { + log.error("AbstractMessage {} didn't send to chat with id {}", sendMessage.getText(), sendMessage.getChatId(), e); + } + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/Bot.java b/src/main/java/ru/kayashov/bar/bot/domain/Bot.java new file mode 100644 index 0000000..6d1402a --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/Bot.java @@ -0,0 +1,26 @@ +package ru.kayashov.bar.bot.domain; + +import org.telegram.telegrambots.meta.api.objects.User; +import org.telegram.telegrambots.meta.exceptions.TelegramApiException; +import ru.kayashov.bar.bot.domain.methods.AbstractDeleteMessage; +import ru.kayashov.bar.bot.domain.methods.AbstractInlineKeyboard; +import ru.kayashov.bar.bot.domain.methods.AbstractMethod; +import ru.kayashov.bar.bot.domain.methods.AbstractSendKeyboardMessage; +import ru.kayashov.bar.bot.domain.methods.AbstractSendMessage; + +import java.util.List; + +public interface Bot { + + default void methodExecute(List methods) { + methods.forEach(x -> x.execute(this)); + } + + void deleteMessage(AbstractDeleteMessage abstractDeleteMessage); + + void sendMessage(AbstractSendMessage abstractSendMessage); + + void sendKeyboardMessage(AbstractSendKeyboardMessage keyboardMessage); + + void sendInlineKeyboard(AbstractInlineKeyboard keyboardMessage); +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/command/CommandContainer.java b/src/main/java/ru/kayashov/bar/bot/domain/command/CommandContainer.java new file mode 100644 index 0000000..b1b1cfa --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/command/CommandContainer.java @@ -0,0 +1,52 @@ +package ru.kayashov.bar.bot.domain.command; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; +import ru.kayashov.bar.bot.annotation.CommandData; +import ru.kayashov.bar.bot.domain.command.api.Command; + +import javax.annotation.PostConstruct; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Getter +@Component +@RequiredArgsConstructor +public class CommandContainer { + + private final List commandList; + + @Qualifier("unknownCommand") + private final Command unknownCommand; + + private final Map commandMap = new HashMap<>(); + + + /** + * Метод, собирающий команды, помеченные аннотацией в список + */ + @PostConstruct + private void createCommandMap() throws ClassNotFoundException { + for(Command command : commandList) { + String proxyName = command.getClass().getName(); + String className = proxyName.substring(0, proxyName.indexOf("$$")); + String name = Class.forName(className) + .getAnnotation(CommandData.class) + .name(); + commandMap.put(name, command); + } + } + + /** + * Метод поиска команды + * + * @param commandIdentifier - название команды, пришедшее от пользователя + * @return - Команда бота {@link }, либо сообщение о неизвестной команде + */ + public Command retrieveCommand(String commandIdentifier) { + return commandMap.getOrDefault(commandIdentifier, unknownCommand); + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/command/api/Command.java b/src/main/java/ru/kayashov/bar/bot/domain/command/api/Command.java new file mode 100644 index 0000000..d532cf6 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/command/api/Command.java @@ -0,0 +1,45 @@ +package ru.kayashov.bar.bot.domain.command.api; + +import org.springframework.transaction.annotation.Transactional; +import ru.kayashov.bar.bot.domain.methods.AbstractMethod; +import ru.kayashov.bar.bot.domain.model.AbstractCallbackQuery; +import ru.kayashov.bar.bot.domain.model.AbstractMessage; +import ru.kayashov.bar.bot.domain.model.AbstractUpdate; + +import java.util.List; + +public interface Command { + + @Transactional + List execute (AbstractUpdate abstractUpdate); + + default Long getChatId(AbstractUpdate abstractUpdate) { + AbstractMessage message = abstractUpdate.getMessage(); + AbstractCallbackQuery query = abstractUpdate.getCallbackQuery(); + + if(message != null) { + return message.getChat().getId(); + } + + if (query != null) { + return query.getMessage().getChatId(); + } + + throw new RuntimeException("Не возможно найти id чата"); + } + + default Integer getMessageId(AbstractUpdate abstractUpdate) { + AbstractMessage message = abstractUpdate.getMessage(); + AbstractCallbackQuery query = abstractUpdate.getCallbackQuery(); + + if(message != null) { + return message.getMessageId(); + } + + if (query != null) { + return query.getMessage().getMessageId(); + } + + throw new RuntimeException("Не возможно найти id сообщения"); + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/command/impl/HideCommand.java b/src/main/java/ru/kayashov/bar/bot/domain/command/impl/HideCommand.java new file mode 100644 index 0000000..1262a53 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/command/impl/HideCommand.java @@ -0,0 +1,24 @@ +package ru.kayashov.bar.bot.domain.command.impl; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; +import ru.kayashov.bar.bot.annotation.CommandData; +import ru.kayashov.bar.bot.domain.command.api.Command; +import ru.kayashov.bar.bot.domain.methods.AbstractMethod; +import ru.kayashov.bar.bot.domain.model.AbstractUpdate; + +import java.util.List; + +import static ru.kayashov.bar.bot.domain.utils.MethodUtils.deleteMessage; + +@Component +@CommandData(name = "hide") +@RequiredArgsConstructor +public class HideCommand implements Command { + + @Override + public List execute(AbstractUpdate abstractUpdate) { + return List.of(deleteMessage(abstractUpdate.getCallbackQuery().getMessage().getChatId(), + abstractUpdate.getCallbackQuery().getMessage().getMessageId())); + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/command/impl/LoginCommand.java b/src/main/java/ru/kayashov/bar/bot/domain/command/impl/LoginCommand.java new file mode 100644 index 0000000..f408fcc --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/command/impl/LoginCommand.java @@ -0,0 +1,49 @@ +package ru.kayashov.bar.bot.domain.command.impl; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; +import ru.kayashov.bar.bot.annotation.CommandData; +import ru.kayashov.bar.bot.domain.command.api.Command; +import ru.kayashov.bar.bot.domain.methods.AbstractMethod; +import ru.kayashov.bar.bot.domain.model.AbstractChat; +import ru.kayashov.bar.bot.domain.model.AbstractUpdate; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.VisitorsRepository; + +import java.util.Base64; +import java.util.List; +import java.util.Optional; +import java.util.Random; + +import static ru.kayashov.bar.bot.domain.utils.MethodUtils.sendMessage; + +@Component +@CommandData(name = "\uD83D\uDD11 Вход") +@RequiredArgsConstructor +public class LoginCommand implements Command { + + private final VisitorsRepository visitorsRepository; + + @Override + public List execute(AbstractUpdate abstractUpdate) { + AbstractChat chat = abstractUpdate.getMessage().getChat(); + Random random = new Random(); + final Integer code = random.nextInt(1010, 9999); + + Optional visitorOpt = visitorsRepository.findById(chat.getId()); + if (visitorOpt.isPresent()) { + Visitor visitor = visitorOpt.get(); + visitor.setCode(code); + visitorsRepository.save(visitor); + String responseCode = chat.getId() + ":" + code; + responseCode = Base64.getEncoder().encodeToString(responseCode.getBytes()); + + String message = "Скопируйте код: " + responseCode + " или " + + "
    перейдите по ссылке"; + return List.of(sendMessage(chat.getId(), message)); + } + String errorMessage = "Не удалось найти вас в системе. Попробуйте выполнить команду /start"; + return List.of(sendMessage(chat.getId(), errorMessage)); + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/command/impl/StartCommand.java b/src/main/java/ru/kayashov/bar/bot/domain/command/impl/StartCommand.java new file mode 100644 index 0000000..c9453c2 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/command/impl/StartCommand.java @@ -0,0 +1,60 @@ +package ru.kayashov.bar.bot.domain.command.impl; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; +import org.telegram.telegrambots.meta.api.methods.GetUserProfilePhotos; +import ru.kayashov.bar.bot.annotation.CommandData; +import ru.kayashov.bar.bot.domain.command.api.Command; +import ru.kayashov.bar.bot.domain.keyboards.reply.ReplyKeyboardMarker; +import ru.kayashov.bar.bot.domain.methods.AbstractMethod; +import ru.kayashov.bar.bot.domain.model.AbstractChat; +import ru.kayashov.bar.bot.domain.model.AbstractUpdate; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.VisitorsRepository; + +import java.util.Base64; +import java.util.List; +import java.util.Optional; +import java.util.Random; + +import static ru.kayashov.bar.bot.domain.keyboards.reply.ReplyKeyboardMarker.getMainMenu; +import static ru.kayashov.bar.bot.domain.utils.MethodUtils.sendKeyboardMessage; +import static ru.kayashov.bar.bot.domain.utils.MethodUtils.sendMessage; + +/** + * Команда обработки запроса меню + * + * Реализация {@link } + */ +@Component +@CommandData(name="/start") +@RequiredArgsConstructor +public class StartCommand implements Command { + + private final VisitorsRepository visitorsRepository; + + @Override + public List execute(AbstractUpdate abstractUpdate) { + AbstractChat chat = abstractUpdate.getMessage().getChat(); + + Optional visitorOpt = visitorsRepository.findById(chat.getId()); + String message; + Visitor visitor; + if(visitorOpt.isPresent()) { + visitor = visitorOpt.get(); + message = "С возвращением "; + } else { + message = "Спасибо за регистрацию "; + visitor = new Visitor(); + visitor.setId(chat.getId()); + visitor.setName(chat.getFirstName()); + visitor.setLastName(chat.getLastName()); + visitor = visitorsRepository.save(visitor); + } + message = message + visitor.getName().strip() + + (visitor.getLastName() != null ? (" " + visitor.getLastName().strip() + "!") : "!"); + + + return List.of(sendKeyboardMessage(chat.getId(), message, getMainMenu())); + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/command/impl/UnknownCommand.java b/src/main/java/ru/kayashov/bar/bot/domain/command/impl/UnknownCommand.java new file mode 100644 index 0000000..2130921 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/command/impl/UnknownCommand.java @@ -0,0 +1,27 @@ +package ru.kayashov.bar.bot.domain.command.impl; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; +import ru.kayashov.bar.bot.annotation.CommandData; +import ru.kayashov.bar.bot.domain.command.api.Command; +import ru.kayashov.bar.bot.domain.methods.AbstractMethod; +import ru.kayashov.bar.bot.domain.model.AbstractUpdate; + +import java.util.Collections; +import java.util.List; + +/** + * Обработка неизвестных команд + *

    + * Реализация {@link Command} + */ +@Component +@CommandData(name = "unknownCommand") +@RequiredArgsConstructor +public class UnknownCommand implements Command { + + @Override + public List execute(AbstractUpdate abstractUpdate) { + return Collections.emptyList(); + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/keyboards/inline/InlineKeyboardMarker.java b/src/main/java/ru/kayashov/bar/bot/domain/keyboards/inline/InlineKeyboardMarker.java new file mode 100644 index 0000000..b7256ce --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/keyboards/inline/InlineKeyboardMarker.java @@ -0,0 +1,157 @@ +package ru.kayashov.bar.bot.domain.keyboards.inline; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboard; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboardButton; + +import java.util.ArrayList; +import java.util.List; + +/** + * Класс методов для создания инлайн клавиатур + */ +@Component +@RequiredArgsConstructor +public class InlineKeyboardMarker { + + /** + * Преобразование списка кнопок в блок основных кнопок + * + * @param sizeRow опциональный размер строки + * @param abstractKeyboardButtons список кнопок для блока + * @return блок основных кнопок + */ + public List> getMainButtons(Integer sizeRow, List abstractKeyboardButtons) { +// int rowSize = PaginationUtil.getRowSize(sizeRow); + int rowSize = sizeRow; + int rowCountInPage = getRowCount(abstractKeyboardButtons.size(), rowSize); + List> buttons = new ArrayList<>(); + + for (int row = 0; row < rowCountInPage; row++) { + List rowButtons = new ArrayList<>(rowSize); + for (int i = 0; i < rowSize; i++) { + int index = (row * rowSize) + i; + if (index >= abstractKeyboardButtons.size()) { + break; + } + rowButtons.add(abstractKeyboardButtons.get(index)); + } + buttons.add(rowButtons); + } + + return buttons; + } + + + /** + * Запрос количества строк для основных кнопок + * + * @param elementsOnPage элементов на странице или общее количество + * @param rowSize количество элементов в строке + * @return число строк основных кнопок + */ + private int getRowCount(int elementsOnPage, int rowSize) { + return elementsOnPage / rowSize + (elementsOnPage % rowSize == 0 ? 0 : 1); + } + + /** + * Метод создания кнопок пагинации + * + * @return ряд кнопок для пагинации + */ + public List getPaginationButtons(int index, int total) { + List buttons = new ArrayList<>(); + + String pageName = "⏪"; + String callback = index != 0 ? "Cocktail:get:" + (index - 1) : "null"; + buttons.add(getButtonForPage(callback, pageName)); + + buttons.add(AbstractKeyboardButton.builder().text(index + 1 + "/" + total).callbackData("null").build()); + + pageName = "⏩"; + callback = index < total - 1 ? "Cocktail:get:" + (index + 1) : "null"; + buttons.add(getButtonForPage(callback, pageName)); + + return buttons; + } + + /** + * Метод создания кнопки + * + * @param callBack данные, возвращаемые на сервер + * @param text текст, видимый пользователю + * @return кнопка для вставки в текст + */ + public AbstractKeyboardButton getButtonForPage(String callBack, String text) { + return AbstractKeyboardButton.builder() + .text(text) + .callbackData(callBack) + .build(); + } + + public static class builder { + private final List> buttons = new ArrayList<>(); + private List> mainButtons; + private List pagination; + private List back; + private List hideButton; + private List stop; + + public builder() { + } + + public builder buttons(List> buttons) { + this.mainButtons = buttons; + return this; + } + + public builder pagination(List buttons) { + this.pagination = buttons; + return this; + } + + public builder backButton(AbstractKeyboardButton button) { + if (button != null) + this.back = List.of(button); + return this; + } + + public builder hidden(boolean isActive) { + if (isActive) { + AbstractKeyboardButton button = AbstractKeyboardButton.builder() + .text("Скрыть") + .callbackData("hide:") + .build(); + this.hideButton = List.of(button); + } + return this; + } + + public builder stopList(boolean isActive, Long cocktailId) { + if (isActive) { + AbstractKeyboardButton button = AbstractKeyboardButton.builder() + .text("Стоп-лист") + .callbackData("Cocktail:stop:" + cocktailId) + .build(); + this.stop = List.of(button); + } + return this; + } + + public AbstractKeyboard build() { + if (mainButtons != null) + buttons.addAll(mainButtons); + if (pagination != null) + buttons.add(pagination); + if (back != null) + buttons.add(back); + if (hideButton != null) + buttons.add(hideButton); + if (stop != null) + buttons.add(stop); + + return AbstractKeyboard.builder().keyboard(buttons).build(); + } + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/keyboards/reply/ReplyKeyboardMarker.java b/src/main/java/ru/kayashov/bar/bot/domain/keyboards/reply/ReplyKeyboardMarker.java new file mode 100644 index 0000000..f54da64 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/keyboards/reply/ReplyKeyboardMarker.java @@ -0,0 +1,37 @@ +package ru.kayashov.bar.bot.domain.keyboards.reply; + +import lombok.experimental.UtilityClass; +import org.springframework.stereotype.Component; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboard; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboardButton; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +@UtilityClass +public class ReplyKeyboardMarker { + + public static AbstractKeyboard getMainMenu() { + String[] menu; + String mainMenu = "\uD83D\uDD11 Вход"; + menu = new String[]{mainMenu/*, "ℹ️ Ингредиенты", "✅ Взять заказ", "💵 Что докупить?"*/}; + + List> keyboard = getKeyboardRows(menu); + + return AbstractKeyboard.builder() + .keyboard(keyboard) + .inputFieldPlaceholder("Меню") + .resizeKeyboard(true) + .selective(true) + .oneTimeKeyboard(false) + .build(); + } + + private static List> getKeyboardRows(String... buttons) { + return Arrays + .stream(buttons) + .map(x -> List.of(new AbstractKeyboardButton(x))) + .collect(Collectors.toList()); + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractDeleteMessage.java b/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractDeleteMessage.java new file mode 100644 index 0000000..c435f67 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractDeleteMessage.java @@ -0,0 +1,22 @@ +package ru.kayashov.bar.bot.domain.methods; + +import lombok.Builder; +import lombok.Getter; +import ru.kayashov.bar.bot.domain.Bot; + +@Getter +public class AbstractDeleteMessage extends AbstractMethod { + + Integer messageId; + + @Builder + public AbstractDeleteMessage(Long chatId, Integer messageId) { + super(chatId); + this.messageId = messageId; + } + + @Override + public void execute(Bot nBot) { + nBot.deleteMessage(this); + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractInlineKeyboard.java b/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractInlineKeyboard.java new file mode 100644 index 0000000..a38e299 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractInlineKeyboard.java @@ -0,0 +1,25 @@ +package ru.kayashov.bar.bot.domain.methods; + +import lombok.Builder; +import lombok.Getter; +import ru.kayashov.bar.bot.domain.Bot; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboard; + +@Getter +public class AbstractInlineKeyboard extends AbstractMethod { + + private String message; + private AbstractKeyboard keyboard; + + @Builder + public AbstractInlineKeyboard(Long chatId, String message, AbstractKeyboard keyboard) { + super(chatId); + this.message = message; + this.keyboard = keyboard; + } + + @Override + public void execute(Bot nBot) { + nBot.sendInlineKeyboard(this); + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractMethod.java b/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractMethod.java new file mode 100644 index 0000000..6f2d1f4 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractMethod.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.bot.domain.methods; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import ru.kayashov.bar.bot.domain.Bot; + +@Getter +@AllArgsConstructor +public abstract class AbstractMethod { + private Long chatId; + + public abstract void execute(Bot nBot); +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractSendKeyboardMessage.java b/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractSendKeyboardMessage.java new file mode 100644 index 0000000..e35cfc5 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractSendKeyboardMessage.java @@ -0,0 +1,23 @@ +package ru.kayashov.bar.bot.domain.methods; + +import lombok.Builder; +import lombok.Getter; +import ru.kayashov.bar.bot.domain.Bot; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboard; + +@Getter +public class AbstractSendKeyboardMessage extends AbstractMethod { + String message; + AbstractKeyboard keyboard; + @Builder + public AbstractSendKeyboardMessage(Long chatId, String message, AbstractKeyboard keyboard) { + super(chatId); + this.keyboard = keyboard; + this.message = message; + } + + @Override + public void execute(Bot nBot) { + nBot.sendKeyboardMessage(this); + } +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractSendMessage.java b/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractSendMessage.java new file mode 100644 index 0000000..1fc0ecf --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/methods/AbstractSendMessage.java @@ -0,0 +1,19 @@ +package ru.kayashov.bar.bot.domain.methods; + +import lombok.Builder; +import lombok.Getter; +import ru.kayashov.bar.bot.domain.Bot; + +@Getter +public class AbstractSendMessage extends AbstractMethod { + String message; + @Builder + public AbstractSendMessage(Long chatId, String message) { + super(chatId); + this.message = message; + } + + public void execute(Bot bot) { + bot.sendMessage(this); + } +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractCallbackQuery.java b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractCallbackQuery.java new file mode 100644 index 0000000..639550c --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractCallbackQuery.java @@ -0,0 +1,11 @@ +package ru.kayashov.bar.bot.domain.model; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class AbstractCallbackQuery { + private AbstractMessage message; + private String data; +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractChat.java b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractChat.java new file mode 100644 index 0000000..87eb481 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractChat.java @@ -0,0 +1,12 @@ +package ru.kayashov.bar.bot.domain.model; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class AbstractChat { + private Long id; + private String firstName; + private String lastName; +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractKeyboard.java b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractKeyboard.java new file mode 100644 index 0000000..267bcb0 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractKeyboard.java @@ -0,0 +1,16 @@ +package ru.kayashov.bar.bot.domain.model; + +import lombok.Builder; +import lombok.Data; + +import java.util.List; + +@Data +@Builder +public class AbstractKeyboard { + private List> keyboard; + private String inputFieldPlaceholder; + private Boolean resizeKeyboard; + private Boolean selective; + private Boolean oneTimeKeyboard; +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractKeyboardButton.java b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractKeyboardButton.java new file mode 100644 index 0000000..0b9379d --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractKeyboardButton.java @@ -0,0 +1,21 @@ +package ru.kayashov.bar.bot.domain.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class AbstractKeyboardButton { + private String text; + private String callbackData; + + public AbstractKeyboardButton(String text) { + this.text = text; + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractMessage.java b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractMessage.java new file mode 100644 index 0000000..c82065f --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractMessage.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.bot.domain.model; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class AbstractMessage { + private Long chatId; + private Integer messageId; + private String message; + private AbstractChat chat; +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractUpdate.java b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractUpdate.java new file mode 100644 index 0000000..e703e3d --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/AbstractUpdate.java @@ -0,0 +1,15 @@ +package ru.kayashov.bar.bot.domain.model; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class AbstractUpdate { + private AbstractCallbackQuery callbackQuery; + private AbstractMessage message; + + public boolean hasMessage() { + return message != null && message.getMessage() != null && !message.getMessage().isEmpty(); + } +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarGenerationDto.java b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarGenerationDto.java new file mode 100644 index 0000000..a5d0e7a --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarGenerationDto.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.bot.domain.model.pojo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonRootName; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonRootName(value = "Gen") +@JsonInclude(JsonInclude.Include.NON_NULL) +public class CarGenerationDto extends FindServiceDto { +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarMarkDto.java b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarMarkDto.java new file mode 100644 index 0000000..f91c4ef --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarMarkDto.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.bot.domain.model.pojo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonRootName; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonRootName(value = "Mark") +public class CarMarkDto extends FindServiceDto { +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarModelDto.java b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarModelDto.java new file mode 100644 index 0000000..ab46cc5 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/CarModelDto.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.bot.domain.model.pojo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonRootName; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonRootName(value = "Model") +public class CarModelDto extends FindServiceDto { +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/FindPageableDto.java b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/FindPageableDto.java new file mode 100644 index 0000000..a190a7b --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/FindPageableDto.java @@ -0,0 +1,21 @@ +package ru.kayashov.bar.bot.domain.model.pojo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonRootName; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonRootName("Find") +public class FindPageableDto { + + @JsonProperty("l") + private Long locationId; + + @JsonProperty("g") + private Long carGenerationId; + + @JsonProperty("p") + private Integer page; +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/FindServiceDto.java b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/FindServiceDto.java new file mode 100644 index 0000000..3547501 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/FindServiceDto.java @@ -0,0 +1,12 @@ +package ru.kayashov.bar.bot.domain.model.pojo; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class FindServiceDto extends PageableDto { + private String name; + private Long value; + private Long old; +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/LocationDto.java b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/LocationDto.java new file mode 100644 index 0000000..5a711b4 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/LocationDto.java @@ -0,0 +1,18 @@ +package ru.kayashov.bar.bot.domain.model.pojo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonRootName; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonRootName("Loc") +@JsonInclude(JsonInclude.Include.NON_NULL) +public class LocationDto extends PageableDto { + private Long id; + @JsonProperty("p") + private Long parent; + private String name; +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/PageableDto.java b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/PageableDto.java new file mode 100644 index 0000000..8fd1024 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/model/pojo/PageableDto.java @@ -0,0 +1,12 @@ +package ru.kayashov.bar.bot.domain.model.pojo; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class PageableDto { + @JsonProperty(value = "pn") + Integer page; +} diff --git a/src/main/java/ru/kayashov/bar/bot/domain/utils/MethodUtils.java b/src/main/java/ru/kayashov/bar/bot/domain/utils/MethodUtils.java new file mode 100644 index 0000000..9783d17 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/bot/domain/utils/MethodUtils.java @@ -0,0 +1,40 @@ +package ru.kayashov.bar.bot.domain.utils; + +import ru.kayashov.bar.bot.domain.methods.AbstractDeleteMessage; +import ru.kayashov.bar.bot.domain.methods.AbstractInlineKeyboard; +import ru.kayashov.bar.bot.domain.methods.AbstractSendKeyboardMessage; +import ru.kayashov.bar.bot.domain.methods.AbstractSendMessage; +import ru.kayashov.bar.bot.domain.model.AbstractKeyboard; + +public class MethodUtils { + + public static AbstractDeleteMessage deleteMessage(Long chatId, Integer messageId) { + return AbstractDeleteMessage.builder() + .messageId(messageId) + .chatId(chatId) + .build(); + } + + public static AbstractSendMessage sendMessage(Long chatId, String message) { + return AbstractSendMessage.builder() + .message(message) + .chatId(chatId) + .build(); + } + + public static AbstractSendKeyboardMessage sendKeyboardMessage(Long chatId, String message, AbstractKeyboard keyboard) { + return AbstractSendKeyboardMessage.builder() + .keyboard(keyboard) + .message(message) + .chatId(chatId) + .build(); + } + + public static AbstractInlineKeyboard sendInlineKeyboard(Long chatId, String message, AbstractKeyboard keyboard) { + return AbstractInlineKeyboard.builder() + .keyboard(keyboard) + .message(message) + .chatId(chatId) + .build(); + } +} diff --git a/src/main/java/ru/kayashov/bar/config/ExecutorConfig.java b/src/main/java/ru/kayashov/bar/config/ExecutorConfig.java new file mode 100644 index 0000000..95f3a2a --- /dev/null +++ b/src/main/java/ru/kayashov/bar/config/ExecutorConfig.java @@ -0,0 +1,16 @@ +package ru.kayashov.bar.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +@Configuration +public class ExecutorConfig { + + @Bean + public ExecutorService executorService() { + return Executors.newFixedThreadPool(3); + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/AuthController.java b/src/main/java/ru/kayashov/bar/controller/AuthController.java new file mode 100644 index 0000000..25cd6e5 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/AuthController.java @@ -0,0 +1,86 @@ +package ru.kayashov.bar.controller; + +import io.jsonwebtoken.Claims; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import ru.kayashov.bar.controller.dto.AuthRequestDto; +import ru.kayashov.bar.controller.dto.AuthResponseDto; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.VisitorsRepository; +import ru.kayashov.bar.security.JwtTokenProvider; + +import java.nio.charset.StandardCharsets; +import java.util.Base64; +import java.util.Optional; + +@Slf4j +@RestController +@RequestMapping("/api/auth") +@RequiredArgsConstructor +public class AuthController { + + private final JwtTokenProvider jwtTokenProvider; + private final VisitorsRepository visitorsRepository; + private final PasswordEncoder passwordEncoder; + + @PostMapping("/login") + public AuthResponseDto checkTelegramChat(@RequestBody AuthRequestDto dto) { + if(dto.getByLogin()) { + return checkLogin(dto.getLogin(), dto.getPassword()); + } else { + return parseCode(dto.getCode()); + } + } + + private AuthResponseDto parseCode(String code) { + String decode = new String(Base64.getDecoder().decode(code), StandardCharsets.UTF_8); + String[] decodeArr = decode.split(":"); + Visitor visitor = visitorsRepository.findById(Long.valueOf(decodeArr[0])) + .orElseThrow(); + + Integer visitorCode = visitor.getCode(); + if (visitorCode == null) { + return new AuthResponseDto(null, "Повторите запрос кода из бота"); + } + if (Integer.valueOf(decodeArr[1]).equals(visitor.getCode())) { + visitor.setCode(null); + visitor = visitorsRepository.save(visitor); + return new AuthResponseDto(jwtTokenProvider.generateToken(visitor), null); + } + return new AuthResponseDto(null, "Неверный код подтверждения"); + } + + private AuthResponseDto checkLogin(String login, String password) { + if(login == null || login.isEmpty() || password == null || password.isEmpty()) { + return new AuthResponseDto(null, "Поля не могут быть пустые"); + } + + Optional visitorOpt = visitorsRepository.findByLogin(login); + if(visitorOpt.isEmpty()) { + return new AuthResponseDto(null, "Не найдет пользователь " + login); + } + Visitor visitor = visitorOpt.get(); + if(passwordEncoder.matches(password, visitor.getPassword())) { + return new AuthResponseDto(jwtTokenProvider.generateToken(visitor), null); + } else { + return new AuthResponseDto(null, "Неверный логин или пароль"); + } + } + + @PostMapping("refresh") + public AuthResponseDto refreshToken(@RequestHeader("Authorization") String token) { + Claims claims = jwtTokenProvider.extractAllClaims(token); + Long visitorId = claims.get("id", Long.class); + Visitor visitor = visitorsRepository.findById(visitorId).orElseThrow(); + return new AuthResponseDto(jwtTokenProvider.generateToken(visitor), null); + } + +} diff --git a/src/main/java/ru/kayashov/bar/controller/BarController.java b/src/main/java/ru/kayashov/bar/controller/BarController.java new file mode 100644 index 0000000..0122fd5 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/BarController.java @@ -0,0 +1,142 @@ +package ru.kayashov.bar.controller; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import ru.kayashov.bar.controller.dto.bar.BarResponseDto; +import ru.kayashov.bar.controller.dto.bar.CategoryResponseDto; +import ru.kayashov.bar.controller.dto.bar.GlassResponseDto; +import ru.kayashov.bar.controller.dto.cocktail.ReceiptResponseDto; +import ru.kayashov.bar.controller.dto.SessionResponseDto; +import ru.kayashov.bar.controller.dto.bar.TagResponseDto; +import ru.kayashov.bar.controller.dto.VisitorResponseDto; +import ru.kayashov.bar.model.entity.BarEntity; +import ru.kayashov.bar.model.entity.BarResident; +import ru.kayashov.bar.model.entity.SessionEntity; +import ru.kayashov.bar.model.entity.Unit; +import ru.kayashov.bar.model.entity.UnitRepository; +import ru.kayashov.bar.model.entity.UserRole; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.SessionRepository; +import ru.kayashov.bar.repository.TagRepository; +import ru.kayashov.bar.service.SessionService; +import ru.kayashov.bar.service.VisitorService; + +import java.util.List; + +@Slf4j +@CrossOrigin(origins = {"*"}) +@RestController +@RequestMapping("/api/bar/") +@RequiredArgsConstructor +public class BarController { + + private final SessionService sessionService; + private final TagRepository tagRepository; + private final SessionRepository sessionRepository; + private final VisitorService visitorService; + private final UnitRepository unitRepository; + + @GetMapping("/list") + public List getBarList(@RequestParam Boolean my) { + return sessionService.getBarList(my); + } + + @GetMapping("/units") + public List getUnitList() { + return unitRepository.findAll(); + } + + @PostMapping("/addToMyList") + public void addToMyList(@RequestBody BarResponseDto dto) { + sessionService.addToMyList(dto); + } + + @PatchMapping("/enter") + public void enterChange(@RequestParam Long id, @RequestParam Boolean value) { + sessionService.enterChange(id, value); + } + + @GetMapping("tags") + public List getTags() { + return tagRepository.findAll() + .stream() + .map(TagResponseDto::mapToDto) + .toList(); + } + + @GetMapping("glass") + public List getGlass() { + return sessionService.getGlassList().stream() + .map(GlassResponseDto::mapToDto) + .toList(); + } + + @GetMapping("category") + public List getCategory() { + return sessionService.getCategoryList().stream() + .map(CategoryResponseDto::mapToDto) + .toList(); + } + + @GetMapping("receipt") + public List getReceipt(@RequestParam("id") Long id) { + return sessionService.getReceiptList(id); + } + + @GetMapping("session") + public Long getSession() { + return sessionService.findActiveSession().getId(); + } + + @GetMapping("session/info") + public SessionResponseDto getSessionInfo() { + SessionEntity session = sessionService.findActiveSession(); + return SessionResponseDto.mapToDto(session); + } + + @PostMapping("session") + public void changeSessionStatus(@RequestParam Boolean value) { + if (value) { + sessionService.createEmptySession(); + return; + } + SessionEntity session = sessionService.findActiveSession(); + session.setIsActive(false); + sessionRepository.save(session); + } + + @GetMapping("/getMe") + public VisitorResponseDto getMe() { + Visitor visitor = visitorService.getCurrentVisitor(); + BarResident resident = visitor.getResidents().stream().filter(BarResident::getActive).findFirst().orElse(null); + String role; + Boolean invited; + boolean active; + if(resident != null) { + role = resident.getRole().toString(); + invited = resident.getInvited(); + active = resident.getBar().getSessions().stream().anyMatch(SessionEntity::getIsActive); + } else { + role = UserRole.USER.toString(); + invited = false; + active = false; + } + VisitorResponseDto dto = VisitorResponseDto.mapToDto(visitor, invited, role, active); + log.info("Запрос информации о пользователе: {}-{} {}, {}вошел в бар{},в роли {}", + dto.getId(), + dto.getName().strip(), + dto.getLastName() != null ? dto.getLastName().strip() : "", + invited ? "" : "не ", + resident != null ? " " + resident.getBar().getId() + "-" + resident.getBar().getName() : "", + role); + return dto; + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/CocktailController.java b/src/main/java/ru/kayashov/bar/controller/CocktailController.java new file mode 100644 index 0000000..ab28074 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/CocktailController.java @@ -0,0 +1,118 @@ +package ru.kayashov.bar.controller; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import ru.kayashov.bar.controller.dto.cocktail.CocktailFilterRequestDto; +import ru.kayashov.bar.controller.dto.cocktail.CocktailForListResponseDto; +import ru.kayashov.bar.controller.dto.ErrorDto; +import ru.kayashov.bar.controller.dto.cocktail.CocktailModalDto; +import ru.kayashov.bar.controller.dto.cocktail.CocktailSimpleResponseDto; +import ru.kayashov.bar.controller.dto.cocktail.ReceiptResponseDto; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.service.CocktailService; + +import java.io.IOException; +import java.util.Arrays; +import java.util.List; + +@Slf4j +@CrossOrigin(origins = {"*"}) +@RestController +@RequestMapping("/api/cocktail") +@RequiredArgsConstructor +public class CocktailController { + + private final CocktailService cocktailService; + + //получить все + @PostMapping("menu") + public List menu(@RequestBody CocktailFilterRequestDto dto) { + return cocktailService.getMenu(dto); + } + + @PostMapping("/photo") + public String savePhoto(@RequestBody MultipartFile file) throws IOException { + if(file == null) { + return ""; + } + return cocktailService.savePhoto(file); + } + + @GetMapping + public CocktailForListResponseDto getOne(@RequestParam Long id) { + return cocktailService.findById(id); + } + + @GetMapping("/simple") + public List getSimple() { + return cocktailService.getSimple(); + } + + @GetMapping("/receipts") + public List getReceipts(@RequestParam Long id) { + return cocktailService.getReceipts(id); + } + + @PostMapping("menuEdit") + public ResponseEntity inMenuEdit(@RequestParam Long id, @RequestParam Boolean value) { + try { + cocktailService.inMenuEdit(id, value); + return ResponseEntity.ok(new ErrorDto(null)); + } catch (Exception e) { + return ResponseEntity.ok(new ErrorDto(e.getMessage())); + } + } + + @GetMapping("/modal") + public CocktailModalDto getForModal(@RequestParam Long id) { + return cocktailService.getForModal(id); + } + + @PatchMapping() + public ResponseEntity editCocktail(@RequestBody CocktailForListResponseDto dto) { + try { + cocktailService.edit(dto); + return ResponseEntity.ok(new ErrorDto(null)); + } catch (Exception e) { + log.error(e.getMessage(), Arrays.toString(e.getStackTrace())); + return ResponseEntity.ok(new ErrorDto(e.getMessage())); + } + } + + @DeleteMapping + public void deleteCocktail(@RequestParam Long id) { + cocktailService.delete(id); + } + + @PutMapping("/favourite") + public void addInFavourite(@RequestParam("id") Long id) { + Long visitorId = ((Visitor) SecurityContextHolder.getContext().getAuthentication().getPrincipal()) + .getId(); + cocktailService.editFavourite(id, visitorId, true); + } + + @DeleteMapping("/favourite") + public void deleteFromFavourite(@RequestParam("id") Long id) { + Long visitorId = ((Visitor) SecurityContextHolder.getContext().getAuthentication().getPrincipal()) + .getId(); + cocktailService.editFavourite(id, visitorId, false); + } + + @PostMapping("/rating") + public void addRating(@RequestParam("id") Long id, @RequestParam("rating") Integer rating) { + cocktailService.setRating(id, rating); + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/IngredientController.java b/src/main/java/ru/kayashov/bar/controller/IngredientController.java new file mode 100644 index 0000000..786cf4f --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/IngredientController.java @@ -0,0 +1,71 @@ +package ru.kayashov.bar.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PatchMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import ru.kayashov.bar.controller.dto.ingredient.IngredientResponseDto; +import ru.kayashov.bar.controller.dto.ingredient.IngredientSimpleResponseDto; +import ru.kayashov.bar.controller.dto.ingredient.TypeResponseDto; +import ru.kayashov.bar.repository.TypeRepository; +import ru.kayashov.bar.service.IngredientService; + +import java.util.List; + +@CrossOrigin(origins = {"*"}) +@RestController +@RequestMapping("/api/ingredient") +@RequiredArgsConstructor +public class IngredientController { + + private final IngredientService ingredientService; + private final TypeRepository typeRepository; + + @GetMapping("/all") + public List getIngredients() { + return ingredientService.getAll(); + } + + @GetMapping("/simple") + public List getIngredientStringList() { + return ingredientService.getAllSimple(); + } + + @GetMapping("/type") + public List getTypes() { + return typeRepository.findAll().stream() + .map(TypeResponseDto::mapToDto) + .toList(); + } + + @PatchMapping + public ResponseEntity saveChangeForType(@RequestBody IngredientResponseDto dto) { + if(ingredientService.saveChange(dto)) { + return ResponseEntity.ok().build(); + } else { + return ResponseEntity.badRequest().build(); + } + } + + @GetMapping + public IngredientResponseDto getIngredient(@RequestParam Long id) { + return IngredientResponseDto.mapToDto(ingredientService.getIngredientById(id)); + } + + @DeleteMapping + public void deleteIngredient(@RequestParam Long id) { + ingredientService.changeBarIngredient(id, false); + } + + @PutMapping + public void putIngredient(@RequestParam Long id) { + ingredientService.changeBarIngredient(id, true); + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/OrderController.java b/src/main/java/ru/kayashov/bar/controller/OrderController.java new file mode 100644 index 0000000..48100b4 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/OrderController.java @@ -0,0 +1,82 @@ +package ru.kayashov.bar.controller; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import ru.kayashov.bar.bot.domain.Bot; +import ru.kayashov.bar.bot.domain.methods.AbstractSendMessage; +import ru.kayashov.bar.controller.dto.OrderResponseDto; +import ru.kayashov.bar.model.entity.BarEntity; +import ru.kayashov.bar.model.entity.BarResident; +import ru.kayashov.bar.model.entity.SessionEntity; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.service.OrderService; +import ru.kayashov.bar.service.VisitorService; + +import java.util.List; +import java.util.Objects; +import java.util.concurrent.ExecutorService; + +@Slf4j +@CrossOrigin(origins = {"*"}) +@RestController +@RequestMapping("/api/order") +@RequiredArgsConstructor +public class OrderController { + + private final ExecutorService executor; + private final OrderService orderService; + private final Bot bot; + private final VisitorService visitorService; + + @PostMapping + public void pay(@RequestParam Long cocktail) { + Long id = ((Visitor) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getId(); + List messages = orderService.createOrder(id, cocktail); + executor.submit(() -> messages.forEach(bot::sendMessage)); + } + + @DeleteMapping + public void cancelOrder(@RequestParam Long id) { + AbstractSendMessage message = orderService.updateOrder(false, id); + executor.submit(() -> bot.sendMessage(message)); + } + + @PutMapping + public void doneOrder(@RequestParam Long id) { + AbstractSendMessage message = orderService.updateOrder(true, id); + executor.submit(() -> bot.sendMessage(message)); + } + + @GetMapping + public List getOrders() { + return orderService.getOrders() + .stream() + .map(OrderResponseDto::new) + .toList(); + } + + @GetMapping("/my") + public List getMyOrders() { + Visitor visitor = visitorService.getCurrentVisitor(); + return visitor.getResidents().stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .map(BarEntity::getSessions) + .flatMap(List::stream) + .filter(SessionEntity::getIsActive) + .map(SessionEntity::getOrders) + .flatMap(List::stream) + .filter(o -> Objects.equals(o.getVisitor().getId(), visitor.getId())) + .map(OrderResponseDto::new) + .toList(); + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/VisitorController.java b/src/main/java/ru/kayashov/bar/controller/VisitorController.java new file mode 100644 index 0000000..10b3f11 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/VisitorController.java @@ -0,0 +1,36 @@ +package ru.kayashov.bar.controller; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import ru.kayashov.bar.controller.dto.VisitorResponseDto; +import ru.kayashov.bar.repository.VisitorsRepository; +import ru.kayashov.bar.service.VisitorService; + +import java.util.List; +import java.util.stream.Stream; + +@Slf4j +@CrossOrigin(origins = {"*"}) +@RestController +@RequestMapping("/api/visitors") +@RequiredArgsConstructor +public class VisitorController { + + private final VisitorService visitorService; + + @GetMapping + public List getVisitors() { + return visitorService.findAll(); + } + + @PostMapping("/invite") + public void invite(@RequestParam Boolean value, @RequestParam Long id) { + visitorService.invited(value, id); + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/AuthRequestDto.java b/src/main/java/ru/kayashov/bar/controller/dto/AuthRequestDto.java new file mode 100644 index 0000000..e27e589 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/AuthRequestDto.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.controller.dto; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class AuthRequestDto { + private Boolean byLogin; + private String code; + private String login; + private String password; +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/AuthResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/AuthResponseDto.java new file mode 100644 index 0000000..151608b --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/AuthResponseDto.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.controller.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@AllArgsConstructor +public class AuthResponseDto { + private String token; + private String error; +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/ErrorDto.java b/src/main/java/ru/kayashov/bar/controller/dto/ErrorDto.java new file mode 100644 index 0000000..3e4f5bb --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/ErrorDto.java @@ -0,0 +1,12 @@ +package ru.kayashov.bar.controller.dto; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@AllArgsConstructor +public class ErrorDto { + private String error; +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/OrderResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/OrderResponseDto.java new file mode 100644 index 0000000..6bbb15b --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/OrderResponseDto.java @@ -0,0 +1,24 @@ +package ru.kayashov.bar.controller.dto; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import ru.kayashov.bar.controller.dto.cocktail.CocktailSimpleResponseDto; +import ru.kayashov.bar.model.entity.Pay; + +@Getter +@Setter +@NoArgsConstructor +public class OrderResponseDto { + private Long id; + private CocktailSimpleResponseDto cocktail; + private VisitorResponseDto visitor; + private String status; + + public OrderResponseDto(Pay pay) { + id = pay.getId(); + cocktail = CocktailSimpleResponseDto.mapToDto(pay.getCocktail()); + visitor = VisitorResponseDto.mapToDto(pay.getVisitor()); + status = pay.getStatus().toString(); + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/SessionResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/SessionResponseDto.java new file mode 100644 index 0000000..85b48c1 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/SessionResponseDto.java @@ -0,0 +1,21 @@ +package ru.kayashov.bar.controller.dto; + +import lombok.Getter; +import lombok.Setter; +import ru.kayashov.bar.model.entity.SessionEntity; + +@Getter +@Setter +public class SessionResponseDto { + + private Long id; + private Boolean isActive; + + + public static SessionResponseDto mapToDto(SessionEntity session) { + SessionResponseDto dto = new SessionResponseDto(); + dto.setId(session.getId()); + dto.setIsActive(session.getIsActive()); + return dto; + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/VisitorResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/VisitorResponseDto.java new file mode 100644 index 0000000..40f873e --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/VisitorResponseDto.java @@ -0,0 +1,37 @@ +package ru.kayashov.bar.controller.dto; + +import lombok.Getter; +import lombok.Setter; +import ru.kayashov.bar.model.entity.Visitor; + +@Getter +@Setter +public class VisitorResponseDto { + + private Long id; + private String name; + private String lastName; + private Boolean invited; + private Boolean isActive; + private String role; + + public static VisitorResponseDto mapToDto(Visitor e) { + VisitorResponseDto d = new VisitorResponseDto(); + + d.setId(e.getId()); + d.setName(e.getName()); + d.setLastName(e.getLastName()); +// d.setInvited(e.getInvited()); +// d.setRole(e.getRole().toString()); + + return d; + } + + public static VisitorResponseDto mapToDto(Visitor e, Boolean invited, String role, Boolean isActive) { + VisitorResponseDto d = mapToDto(e); + d.setInvited(invited); + d.setRole(role); + d.setIsActive(isActive); + return d; + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/bar/BarResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/bar/BarResponseDto.java new file mode 100644 index 0000000..c0d9a52 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/bar/BarResponseDto.java @@ -0,0 +1,14 @@ +package ru.kayashov.bar.controller.dto.bar; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class BarResponseDto { + private Long id; + private String name; + private Boolean open; + private Boolean enter; + private String myRole; +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/bar/CategoryResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/bar/CategoryResponseDto.java new file mode 100644 index 0000000..d51c10e --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/bar/CategoryResponseDto.java @@ -0,0 +1,19 @@ +package ru.kayashov.bar.controller.dto.bar; + +import lombok.Getter; +import lombok.Setter; +import ru.kayashov.bar.model.entity.CategoryEntity; + +@Getter +@Setter +public class CategoryResponseDto { + private int id; + private String name; + + public static CategoryResponseDto mapToDto(CategoryEntity entity) { + CategoryResponseDto dto = new CategoryResponseDto(); + dto.setId(entity.getId()); + dto.setName(entity.getName()); + return dto; + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/bar/GlassResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/bar/GlassResponseDto.java new file mode 100644 index 0000000..fe55cd8 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/bar/GlassResponseDto.java @@ -0,0 +1,19 @@ +package ru.kayashov.bar.controller.dto.bar; + +import lombok.Getter; +import lombok.Setter; +import ru.kayashov.bar.model.entity.GlassEntity; + +@Getter +@Setter +public class GlassResponseDto { + private int id; + private String name; + + public static GlassResponseDto mapToDto(GlassEntity entity) { + GlassResponseDto dto = new GlassResponseDto(); + dto.setId(entity.getId()); + dto.setName(entity.getName()); + return dto; + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/bar/TagResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/bar/TagResponseDto.java new file mode 100644 index 0000000..4e12b0a --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/bar/TagResponseDto.java @@ -0,0 +1,19 @@ +package ru.kayashov.bar.controller.dto.bar; + +import lombok.Getter; +import lombok.Setter; +import ru.kayashov.bar.model.entity.TagEntity; + +@Getter +@Setter +public class TagResponseDto { + private Long id; + private String name; + + public static TagResponseDto mapToDto(TagEntity e) { + TagResponseDto dto = new TagResponseDto(); + dto.setId(e.getId()); + dto.setName(e.getName()); + return dto; + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailFilterRequestDto.java b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailFilterRequestDto.java new file mode 100644 index 0000000..e6fa894 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailFilterRequestDto.java @@ -0,0 +1,27 @@ +package ru.kayashov.bar.controller.dto.cocktail; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +@JsonIgnoreProperties(ignoreUnknown = true) +public class CocktailFilterRequestDto { + private String search; + private Boolean onlyFavourite; + private List glass; + private List category; + private List alcohol; + private List tags; + private Integer iCount; + private List ingredient; + private String inMenu; + + private SortingEnum sort; + private Boolean all; + private Integer page; + private Integer size; +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailForListResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailForListResponseDto.java new file mode 100644 index 0000000..eb98c5d --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailForListResponseDto.java @@ -0,0 +1,91 @@ +package ru.kayashov.bar.controller.dto.cocktail; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import ru.kayashov.bar.model.entity.CocktailEntity; +import ru.kayashov.bar.model.entity.Rating; +import ru.kayashov.bar.model.entity.TagEntity; + +import java.util.List; +import java.util.stream.Collectors; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CocktailForListResponseDto { + private Long id; + private String name; + private String image; + private String video; + private String instructions; + private Boolean inMenu; + + private String category; + private String alcoholic; + private String glass; + + private Integer volume; + private Boolean hasError; + + private String tags; + private String components; + private Boolean isAllowed; + + private List receipt; + + private RatingResponseDto rating; + + public static CocktailForListResponseDto mapToDto(CocktailEntity e, Long visitorId) { + CocktailForListResponseDto d = new CocktailForListResponseDto(); + d.setId(e.getId()); + d.setName(e.getName()); + d.setImage(e.getImage()); + d.setVideo(e.getVideo()); + d.setInstructions(e.getInstructions()); + + d.setCategory(e.getCategoryEntity().getName()); + d.setAlcoholic(e.getAlcoholicEntity().getName()); + d.setGlass(e.getGlassEntity().getName()); + +// d.setIsAllowed(e.getIsAllowed()); + + d.setTags(e.getTags().stream().map(TagEntity::getName).collect(Collectors.joining(","))); + + String components = e.getReceipt().stream().map(r -> r.getIngredient().getName()).collect(Collectors.joining(", ")); + d.setComponents(components); + d.setReceipt(e.getReceipt().stream().map(ReceiptResponseDto::mapToDto).toList()); + + RatingResponseDto rating = new RatingResponseDto(); + int sum = 0; + int count = 0; + for (Rating current : e.getRating()) { + //если у данного пользователя есть рейтинг для этого коктейля + if (current.getVisitor().getId().equals(visitorId)) { + //присваиваем избранное для конкретного пользователя + rating.setFavourite(current.isFavorite()); + //проверяем, ставил данный пользователь свою оценку этому коктейлю, если да, берем ее и возвращаем рейтинг + if (current.getRating() != 0) { + rating.setRating(current.getRating()); + d.setRating(rating); + return d; + } + } + //если пользователь ставил оценку, добавляем ее к сумме остальных оценок и увеличиваем количество оценивших + if (current.getRating() > 0) { + sum += current.getRating(); + count++; + } + } + //если после всех итераций есть какая-то сумма оценок - вычисляем среднюю + if (sum > 0) { + rating.setRating(sum / count); + } + d.setRating(rating); + return d; + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailModalDto.java b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailModalDto.java new file mode 100644 index 0000000..2ea4f41 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailModalDto.java @@ -0,0 +1,23 @@ +package ru.kayashov.bar.controller.dto.cocktail; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CocktailModalDto { + private Long id; + private String name; + private RatingResponseDto rating; + private String image; + private List receipt; + private String instructions; +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailSimpleResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailSimpleResponseDto.java new file mode 100644 index 0000000..5118eb6 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/CocktailSimpleResponseDto.java @@ -0,0 +1,28 @@ +package ru.kayashov.bar.controller.dto.cocktail; + +import lombok.Getter; +import lombok.Setter; +import ru.kayashov.bar.model.entity.CocktailEntity; +import ru.kayashov.bar.model.entity.IngredientEntity; +import ru.kayashov.bar.model.entity.ReceiptEntity; +import ru.kayashov.bar.model.entity.TagEntity; + +import java.util.stream.Collectors; + +@Getter +@Setter +public class CocktailSimpleResponseDto { + private Long id; + private String name; + private Boolean hasError; + + public static CocktailSimpleResponseDto mapToDto(CocktailEntity e) { + CocktailSimpleResponseDto d = new CocktailSimpleResponseDto(); + d.setId(e.getId()); + d.setName(e.getName()); + boolean hasError = e.getReceipt().stream() + .anyMatch(receiptEntity -> receiptEntity.getUnit() == null || receiptEntity.getCount() == null); + d.setHasError(hasError); + return d; + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/cocktail/RatingResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/RatingResponseDto.java new file mode 100644 index 0000000..a67fb13 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/RatingResponseDto.java @@ -0,0 +1,11 @@ +package ru.kayashov.bar.controller.dto.cocktail; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class RatingResponseDto { + private int rating = 0; + private boolean favourite = false; +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/cocktail/ReceiptResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/ReceiptResponseDto.java new file mode 100644 index 0000000..248a348 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/ReceiptResponseDto.java @@ -0,0 +1,31 @@ +package ru.kayashov.bar.controller.dto.cocktail; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import ru.kayashov.bar.controller.dto.ingredient.IngredientSimpleResponseDto; +import ru.kayashov.bar.model.entity.ReceiptEntity; +import ru.kayashov.bar.model.entity.Unit; + +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ReceiptResponseDto { + private Long id; + private IngredientSimpleResponseDto ingredient; + private String measure; + private Float count; + private Unit unit; + + public static ReceiptResponseDto mapToDto(ReceiptEntity e) { + ReceiptResponseDto d = new ReceiptResponseDto(); + d.id = e.getId(); + d.ingredient = IngredientSimpleResponseDto.mapToDto(e.getIngredient()); + d.measure = e.getMeasure(); + d.count = e.getCount(); + d.unit = e.getUnit(); + return d; + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/cocktail/SortingEnum.java b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/SortingEnum.java new file mode 100644 index 0000000..6d006ba --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/cocktail/SortingEnum.java @@ -0,0 +1,32 @@ +package ru.kayashov.bar.controller.dto.cocktail; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@JsonFormat(shape = JsonFormat.Shape.STRING) +@RequiredArgsConstructor +public enum SortingEnum { + @JsonProperty("name|asc") + NAME_ASC("name", true), + + @JsonProperty("name|desc") + NAME_DESC("name", false), + + @JsonProperty("rating.rating|desc") + RATING_DESC("rating", false), + + @JsonProperty("rating.rating|asc") + RATING_ASC("rating" , true), + + @JsonProperty("rating.favourite|desc") + FAVOURITE_DESC("favourite", false), + + @JsonProperty("rating.favourite|asc") + FAVOURITE_ASC("favourite", true); + + private final String orderBy; + private final Boolean isAsc; +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/ingredient/IngredientResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/ingredient/IngredientResponseDto.java new file mode 100644 index 0000000..86e8091 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/ingredient/IngredientResponseDto.java @@ -0,0 +1,41 @@ +package ru.kayashov.bar.controller.dto.ingredient; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import ru.kayashov.bar.model.entity.IngredientEntity; + +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class IngredientResponseDto { + private Long id; + private String name; +// private String enName; + private Boolean alcohol; + private Integer abv; + private boolean isHave; + private String type; + private String image; + private String description; + + + public static IngredientResponseDto mapToDto(IngredientEntity i) { + return IngredientResponseDto + .builder() + .id(i.getId()) + .name(i.getName()) +// .enName(i.getEnName()) + .alcohol(i.getAlcohol()) + .type(i.getType() != null ? i.getType().getName() : null) + .abv(i.getAbv()) +// .isHave(i.getIsHave()) + .image("https://thecocktaildb.com/images/ingredients/" + i.getEnName() + "-Medium.png") + .description(i.getDescription()) + .build(); + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/ingredient/IngredientSimpleResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/ingredient/IngredientSimpleResponseDto.java new file mode 100644 index 0000000..f996e46 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/ingredient/IngredientSimpleResponseDto.java @@ -0,0 +1,19 @@ +package ru.kayashov.bar.controller.dto.ingredient; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.Setter; +import ru.kayashov.bar.model.entity.IngredientEntity; + +@Getter +@Setter +@AllArgsConstructor +public class IngredientSimpleResponseDto { + private Long id; + private String name; + private Boolean isHave; + + public static IngredientSimpleResponseDto mapToDto(IngredientEntity ingredient) { + return new IngredientSimpleResponseDto(ingredient.getId(), ingredient.getName(), false/*ingredient.getIsHave()*/); + } +} diff --git a/src/main/java/ru/kayashov/bar/controller/dto/ingredient/TypeResponseDto.java b/src/main/java/ru/kayashov/bar/controller/dto/ingredient/TypeResponseDto.java new file mode 100644 index 0000000..9e8a306 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/controller/dto/ingredient/TypeResponseDto.java @@ -0,0 +1,19 @@ +package ru.kayashov.bar.controller.dto.ingredient; + +import lombok.Getter; +import lombok.Setter; +import ru.kayashov.bar.model.entity.TypeEntity; + +@Getter +@Setter +public class TypeResponseDto { + private Long id; + private String name; + + public static TypeResponseDto mapToDto(TypeEntity e) { + TypeResponseDto dto = new TypeResponseDto(); + dto.setId(e.getId()); + dto.setName(e.getName()); + return dto; + } +} diff --git a/src/main/java/ru/kayashov/bar/mapper/CocktailMapper.java b/src/main/java/ru/kayashov/bar/mapper/CocktailMapper.java new file mode 100644 index 0000000..ef2bfd8 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/mapper/CocktailMapper.java @@ -0,0 +1,227 @@ +package ru.kayashov.bar.mapper; + +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import ru.kayashov.bar.controller.dto.cocktail.CocktailModalDto; +import ru.kayashov.bar.controller.dto.cocktail.CocktailForListResponseDto; +import ru.kayashov.bar.controller.dto.ingredient.IngredientSimpleResponseDto; +import ru.kayashov.bar.controller.dto.cocktail.RatingResponseDto; +import ru.kayashov.bar.controller.dto.cocktail.ReceiptResponseDto; +import ru.kayashov.bar.model.entity.BarEntity; +import ru.kayashov.bar.model.entity.BarIngredientStorage; +import ru.kayashov.bar.model.entity.BarResident; +import ru.kayashov.bar.model.entity.CocktailEntity; +import ru.kayashov.bar.model.entity.IngredientEntity; +import ru.kayashov.bar.model.entity.Rating; +import ru.kayashov.bar.model.entity.ReceiptEntity; +import ru.kayashov.bar.model.entity.StopList; +import ru.kayashov.bar.model.entity.TagEntity; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.VisitorsRepository; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +@Component +@RequiredArgsConstructor +public class CocktailMapper { + + private final VisitorsRepository visitorsRepository; + + @Transactional + public List cocktailsToDtoList(List cocktails, Boolean all) { + Visitor visitor = getCurrentVisitor(); +// if(checkUserNotInBar(visitor)) { +// return new ArrayList<>(); +// } + List barStopList = getStopList(visitor); + List allowedIngredients = getAllowedIngredients(visitor); + return cocktails.stream() + .map(c -> cocktailToDto(c, visitor, allowedIngredients, barStopList)) +// .filter(c -> all || c.getIsAllowed()) +// .filter(c -> all || c.getInMenu()) + .toList(); + } + + public CocktailForListResponseDto cocktailToFullDto(CocktailEntity e) { + List allowed = getAllowedIngredients(getCurrentVisitor()); + return CocktailForListResponseDto.builder() + .id(e.getId()) + .name(e.getName()) + .image(e.getImage()) + .category(e.getCategoryEntity().getName()) + .alcoholic(e.getAlcoholicEntity().getName()) + .glass(e.getGlassEntity().getName()) + .tags(containCocktailTags(e.getTags())) + .instructions(e.getInstructions()) + .video(e.getVideo()) + .receipt(createReceiptDtoList(e.getReceipt(), allowed)) + .build(); + } + + private boolean checkUserNotInBar(Visitor visitor) { + return visitor.getResidents().stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .toList() + .isEmpty(); + } + + private CocktailForListResponseDto cocktailToDto(CocktailEntity e, Visitor visitor, List allowedIngredients, List barStopList) { + boolean hasError = false; + int volume = 0; + Float abv = 0f; + Integer p = null; + for(ReceiptEntity receipt : e.getReceipt()) { + if(receipt.getCount() == null) { + hasError = true; + break; + } + if(receipt.getUnit() == null) { + hasError = true; + break; + } + if(!receipt.getUnit().getId().equals(74L) && abv != null) { + abv = null; + } + if(abv != null) { + IngredientEntity ingredient = receipt.getIngredient(); + if(ingredient.getAlcohol() && ingredient.getAbv() == null) { + hasError = true; + break; + } + if(ingredient.getAlcohol()) { + abv += ingredient.getAbv() * receipt.getCount(); + } + volume += receipt.getCount(); + } + } + + if(!hasError && abv != null) { + p = Math.round(abv / volume); + } + + return CocktailForListResponseDto.builder() + .id(e.getId()) + .name(e.getName()) + .image(e.getImage()) + .hasError(hasError) + .volume(p) + .category(e.getCategoryEntity().getName()) + .alcoholic(e.getAlcoholicEntity().getName()) + .glass(e.getGlassEntity().getName()) + .tags(containCocktailTags(e.getTags())) + .components(containCocktailComponents(e.getReceipt())) + .rating(createRatingDto(e.getRating(), visitor)) + .isAllowed(calculateAllowed(e.getReceipt(), allowedIngredients)) + .inMenu(!barStopList.contains(e.getId())) + .build(); +// d.setReceipt(e.getReceipt().stream().map(ReceiptResponseDto::mapToDto).toList()); + } + + private List getStopList(Visitor visitor) { + return visitor.getResidents().stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .map(BarEntity::getStops) + .flatMap(List::stream) + .map(StopList::getCocktail) + .map(CocktailEntity::getId) + .toList(); + } + + private List getAllowedIngredients(Visitor visitor) { + return visitor.getResidents().stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .map(BarEntity::getIngredients) + .flatMap(List::stream) + .map(BarIngredientStorage::getIngredient) + .map(IngredientEntity::getId) + .toList(); + } + + private Boolean calculateAllowed(List e, List allowedIngredients) { + return e.stream() + .map(ReceiptEntity::getIngredient) + .allMatch(i -> allowedIngredients.contains(i.getId())); + } + + private RatingResponseDto createRatingDto(List rating, Visitor visitor) { + RatingResponseDto result = new RatingResponseDto(); + int sum = 0; + int count = 0; + for (Rating current : rating) { + if (current.getVisitor().getId().equals(visitor.getId())) { + result.setFavourite(current.isFavorite()); + if (current.getRating() != 0) { + result.setRating(current.getRating()); + return result; + } + } else if (current.getRating() > 0) { + sum += current.getRating(); + count++; + } + } + if (sum > 0) { + result.setRating(sum / count); + } + return result; + } + + private String containCocktailComponents(List receipts) { + return receipts.stream() + .map(ReceiptEntity::getIngredient) + .map(IngredientEntity::getName) + .collect(Collectors.joining(", ")); + } + + private String containCocktailTags(List tags) { + return tags.stream() + .map(TagEntity::getName) + .collect(Collectors.joining(",")); + } + + private Visitor getCurrentVisitor() { + Long visitorId = ((Visitor) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getId(); + return visitorsRepository.findById(visitorId).orElseThrow(RuntimeException::new); + } + + public CocktailModalDto cocktailToModalDto(CocktailEntity e) { + Visitor visitor = getCurrentVisitor(); + List allowedIngredients = getAllowedIngredients(visitor); + return CocktailModalDto.builder() + .id(e.getId()) + .name(e.getName()) + .image(e.getImage()) + .instructions(e.getInstructions()) + .rating(createRatingDto(e.getRating(), visitor)) + .receipt(createReceiptDtoList(e.getReceipt(), allowedIngredients)) + .build(); + } + + private List createReceiptDtoList(List receipts, List allowedIngredients) { + return receipts.stream() + .map(r -> createReceiptDto(r, allowedIngredients)) + .toList(); + } + + private ReceiptResponseDto createReceiptDto(ReceiptEntity e, List allowedIngredients) { + return ReceiptResponseDto.builder() + .id(e.getId()) + .ingredient(createIngredientResponseDto(e.getIngredient(), allowedIngredients)) + .count(e.getCount()) + .unit(e.getUnit()) + .measure(e.getMeasure()) + .build(); + } + + private IngredientSimpleResponseDto createIngredientResponseDto(IngredientEntity i, List allowedIngredients) { + return new IngredientSimpleResponseDto(i.getId(), i.getName(), allowedIngredients.contains(i.getId())); + } + + +} diff --git a/src/main/java/ru/kayashov/bar/mapper/IngredientMapper.java b/src/main/java/ru/kayashov/bar/mapper/IngredientMapper.java new file mode 100644 index 0000000..f8f7764 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/mapper/IngredientMapper.java @@ -0,0 +1,49 @@ +package ru.kayashov.bar.mapper; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; +import ru.kayashov.bar.controller.dto.ingredient.IngredientResponseDto; +import ru.kayashov.bar.controller.dto.ingredient.IngredientSimpleResponseDto; +import ru.kayashov.bar.model.entity.IngredientEntity; +import ru.kayashov.bar.service.VisitorService; + +import java.util.List; + +@Component +@RequiredArgsConstructor +public class IngredientMapper { + + private final VisitorService visitorService; + + public List mapIngredientsToDtoList(List ingredients) { + List allowedIngredients = visitorService.getAllowedIngredients(); + return ingredients.stream() + .map(i -> mapIngredientToDto(i, allowedIngredients)) + .toList(); + } + + private IngredientResponseDto mapIngredientToDto(IngredientEntity i, List allowedIngredients) { + return IngredientResponseDto + .builder() + .id(i.getId()) + .name(i.getName()) + .alcohol(i.getAlcohol()) + .type(i.getType() != null ? i.getType().getName() : null) + .abv(i.getAbv()) + .isHave(allowedIngredients.contains(i.getId())) + .image("https://thecocktaildb.com/images/ingredients/" + i.getEnName() + "-Medium.png") + .description(i.getDescription()) + .build(); + } + + public List mapIngredientsToSimpleDtoList(List ingredients) { + List allowedIngredients = visitorService.getAllowedIngredients(); + return ingredients.stream() + .map(i -> mapIngredientToSimpleDto(i, allowedIngredients)) + .toList(); + } + + private IngredientSimpleResponseDto mapIngredientToSimpleDto(IngredientEntity i, List allowedIngredients) { + return new IngredientSimpleResponseDto(i.getId(), i.getName(), allowedIngredients.contains(i.getId())); + } +} diff --git a/src/main/java/ru/kayashov/bar/model/Cocktail.java b/src/main/java/ru/kayashov/bar/model/Cocktail.java new file mode 100644 index 0000000..c7dc328 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/Cocktail.java @@ -0,0 +1,60 @@ +package ru.kayashov.bar.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@JsonIgnoreProperties(ignoreUnknown = true) +public class Cocktail { + private String idDrink; + private String strDrink; + private String strDrinkAlternate; + private String strTags; + private String strVideo; + private String strCategory; + private String strIBA; + private String strAlcoholic; + private String strGlass; + private String strInstructions; + private String strDrinkThumb; + private String strImageAttribution; + + private String strIngredient1; + private String strIngredient2; + private String strIngredient3; + private String strIngredient4; + private String strIngredient5; + private String strIngredient6; + private String strIngredient7; + private String strIngredient8; + private String strIngredient9; + private String strIngredient10; + private String strIngredient11; + private String strIngredient12; + private String strIngredient13; + private String strIngredient14; + private String strIngredient15; + + private String strMeasure1; + private String strMeasure2; + private String strMeasure3; + private String strMeasure4; + private String strMeasure5; + private String strMeasure6; + private String strMeasure7; + private String strMeasure8; + private String strMeasure9; + private String strMeasure10; + private String strMeasure11; + private String strMeasure12; + private String strMeasure13; + private String strMeasure14; + private String strMeasure15; + + @Override + public String toString() { + return idDrink + "-" + strDrink + "-" + strAlcoholic; + } +} diff --git a/src/main/java/ru/kayashov/bar/model/Ingredient.java b/src/main/java/ru/kayashov/bar/model/Ingredient.java new file mode 100644 index 0000000..7c0e24f --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/Ingredient.java @@ -0,0 +1,24 @@ +package ru.kayashov.bar.model; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class Ingredient { + private String idIngredient; + private String strIngredient; + private String strDescription; + private String strType; + private String strAlcohol; + private String strABV; + + @Override + public String toString() { + String mes = idIngredient + "-" + strIngredient; + if(strABV != null) { + mes += "-" + strABV; + } + return mes; + } +} diff --git a/src/main/java/ru/kayashov/bar/model/api/cocktail/Cocktails.java b/src/main/java/ru/kayashov/bar/model/api/cocktail/Cocktails.java new file mode 100644 index 0000000..a1839f1 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/api/cocktail/Cocktails.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.model.api.cocktail; + +import lombok.Getter; +import lombok.Setter; +import ru.kayashov.bar.model.Cocktail; + +import java.util.List; + +@Getter +@Setter +public class Cocktails { + private List drinks; +} diff --git a/src/main/java/ru/kayashov/bar/model/api/cocktail/Ingredients.java b/src/main/java/ru/kayashov/bar/model/api/cocktail/Ingredients.java new file mode 100644 index 0000000..2e95d9f --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/api/cocktail/Ingredients.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.model.api.cocktail; + +import lombok.Getter; +import lombok.Setter; +import ru.kayashov.bar.model.Ingredient; + +import java.util.List; + +@Getter +@Setter +public class Ingredients { + private List ingredients; +} diff --git a/src/main/java/ru/kayashov/bar/model/api/translate/Request.java b/src/main/java/ru/kayashov/bar/model/api/translate/Request.java new file mode 100644 index 0000000..a51aa2d --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/api/translate/Request.java @@ -0,0 +1,23 @@ +package ru.kayashov.bar.model.api.translate; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +@NoArgsConstructor +public class Request { + private String sourceLanguageCode = "en"; + private String targetLanguageCode = "ru"; + private String format = "PLAIN_TEXT"; + private String folderId = "b1gugphpvujifrf2gkj5"; + private List texts; + private Boolean speller = false; + + public Request(List texts) { + this.texts = texts; + } +} diff --git a/src/main/java/ru/kayashov/bar/model/api/translate/Response.java b/src/main/java/ru/kayashov/bar/model/api/translate/Response.java new file mode 100644 index 0000000..6153653 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/api/translate/Response.java @@ -0,0 +1,12 @@ +package ru.kayashov.bar.model.api.translate; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class Response { + private List translations; +} diff --git a/src/main/java/ru/kayashov/bar/model/api/translate/Translate.java b/src/main/java/ru/kayashov/bar/model/api/translate/Translate.java new file mode 100644 index 0000000..55c0a11 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/api/translate/Translate.java @@ -0,0 +1,10 @@ +package ru.kayashov.bar.model.api.translate; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class Translate { + private String text; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/AlcoholicEntity.java b/src/main/java/ru/kayashov/bar/model/entity/AlcoholicEntity.java new file mode 100644 index 0000000..70a9612 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/AlcoholicEntity.java @@ -0,0 +1,27 @@ +package ru.kayashov.bar.model.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +@Entity +@Table(name = "alcoholic") +public class AlcoholicEntity { + @Id + private Integer id; + @Column(name = "en_name") + private String enName; + private String name; + + @OneToMany(mappedBy = "alcoholicEntity") + private List cocktails; + +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/model/entity/BarEntity.java b/src/main/java/ru/kayashov/bar/model/entity/BarEntity.java new file mode 100644 index 0000000..5fc4f92 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/BarEntity.java @@ -0,0 +1,35 @@ +package ru.kayashov.bar.model.entity; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import java.util.List; + +@Table(name = "bar") +@Entity +@Getter +@Setter +public class BarEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; + + @OneToMany(mappedBy = "bar") + private List sessions; + + @OneToMany(mappedBy = "bar") + private List ingredients; + + @OneToMany(mappedBy = "bar") + private List visitors; + + @OneToMany(mappedBy = "bar") + private List stops; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/BarIngredientStorage.java b/src/main/java/ru/kayashov/bar/model/entity/BarIngredientStorage.java new file mode 100644 index 0000000..839cfd5 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/BarIngredientStorage.java @@ -0,0 +1,28 @@ +package ru.kayashov.bar.model.entity; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +@Entity +@Getter +@Setter +public class BarIngredientStorage { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + private IngredientEntity ingredient; + + @ManyToOne + private BarEntity bar; + + //todo: с заделом на будущее + private String measure; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/BarResident.java b/src/main/java/ru/kayashov/bar/model/entity/BarResident.java new file mode 100644 index 0000000..73be48e --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/BarResident.java @@ -0,0 +1,36 @@ +package ru.kayashov.bar.model.entity; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +import static ru.kayashov.bar.model.entity.UserRole.USER; + +@Entity +@Getter +@Setter +public class BarResident { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + private Visitor visitor; + + @ManyToOne + private BarEntity bar; + + private Boolean invited = true; + private Boolean active = true; + + @Enumerated(value = EnumType.STRING) + private UserRole role = USER; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/CategoryEntity.java b/src/main/java/ru/kayashov/bar/model/entity/CategoryEntity.java new file mode 100644 index 0000000..d8e84bf --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/CategoryEntity.java @@ -0,0 +1,26 @@ +package ru.kayashov.bar.model.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +@Entity +@Table(name = "category") +public class CategoryEntity { + @Id + private Integer id; + @Column(name = "en_name") + private String enName; + private String name; + + @OneToMany(mappedBy = "categoryEntity") + private List cocktails; +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/model/entity/CocktailEntity.java b/src/main/java/ru/kayashov/bar/model/entity/CocktailEntity.java new file mode 100644 index 0000000..cbb497c --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/CocktailEntity.java @@ -0,0 +1,69 @@ +package ru.kayashov.bar.model.entity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToMany; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import java.util.List; + +@Entity +@Table(name = "cocktail") +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CocktailEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; + private String image; + private String video; + + @OneToMany(mappedBy = "cocktail", cascade = CascadeType.REMOVE) + private List stopLists; + + @Column(columnDefinition = "text") + private String instructions; + + @ManyToOne + private CategoryEntity categoryEntity; + @ManyToOne + private AlcoholicEntity alcoholicEntity; + @ManyToOne + private GlassEntity glassEntity; + + @OneToMany(mappedBy = "cocktail", cascade = CascadeType.REMOVE) + private List receipt; + + @ManyToMany + @JoinTable( + name = "cocktail_tags", + joinColumns = @JoinColumn(name = "cocktail_id"), + inverseJoinColumns = @JoinColumn(name = "tag_id") + ) + private List tags; + + @OneToMany(mappedBy = "cocktail", cascade = {CascadeType.PERSIST, CascadeType.REMOVE}) + private List rating; + + @Override + public String toString() { + return id + "-" + name + "-" + alcoholicEntity.getId(); + } +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/GlassEntity.java b/src/main/java/ru/kayashov/bar/model/entity/GlassEntity.java new file mode 100644 index 0000000..0691b1a --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/GlassEntity.java @@ -0,0 +1,29 @@ +package ru.kayashov.bar.model.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +@Entity +@Table(name = "glass") +public class GlassEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + @Column(name = "en_name", nullable = false, length = Integer.MAX_VALUE) + private String enName; + private String name; + + @OneToMany(mappedBy = "glassEntity") + private List cocktails; +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/model/entity/IngredientEntity.java b/src/main/java/ru/kayashov/bar/model/entity/IngredientEntity.java new file mode 100644 index 0000000..8678ac7 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/IngredientEntity.java @@ -0,0 +1,48 @@ +package ru.kayashov.bar.model.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToMany; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +@Entity +@Table(name = "ingredient") +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class IngredientEntity { + @Id + private Long id; + private String name; + private String enName; + private Boolean alcohol; + private Integer abv; + + @Column(columnDefinition="text") + private String description; + + @OneToMany(mappedBy = "ingredient") + private List receipts; + + @ManyToOne + @JoinColumn(name = "type") + private TypeEntity type; + + @OneToMany(mappedBy = "ingredient") + private List barIngredients; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/OrderStatus.java b/src/main/java/ru/kayashov/bar/model/entity/OrderStatus.java new file mode 100644 index 0000000..369c1e4 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/OrderStatus.java @@ -0,0 +1,5 @@ +package ru.kayashov.bar.model.entity; + +public enum OrderStatus { + NEW, PROCESS, DONE, CANCEL; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/ParserEntity.java b/src/main/java/ru/kayashov/bar/model/entity/ParserEntity.java new file mode 100644 index 0000000..a9feb90 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/ParserEntity.java @@ -0,0 +1,24 @@ +package ru.kayashov.bar.model.entity; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import org.springframework.scheduling.annotation.EnableScheduling; + +@Entity +@Table(name = "parser") +@Getter +@Setter +public class ParserEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Integer id; + private Long ingredientId; + private Long cocktailId; + private Long ingredientError; + private Long cocktailError; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/Pay.java b/src/main/java/ru/kayashov/bar/model/entity/Pay.java new file mode 100644 index 0000000..f0a45db --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/Pay.java @@ -0,0 +1,37 @@ +package ru.kayashov.bar.model.entity; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import java.time.LocalDateTime; + +@Entity +@Getter +@Setter +public class Pay { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + private CocktailEntity cocktail; + + @ManyToOne + private Visitor visitor; + + @Enumerated(EnumType.STRING) + private OrderStatus status; + + @ManyToOne + private SessionEntity session; + + private LocalDateTime createdAt; + private LocalDateTime closedAt; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/Rating.java b/src/main/java/ru/kayashov/bar/model/entity/Rating.java new file mode 100644 index 0000000..9110273 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/Rating.java @@ -0,0 +1,30 @@ +package ru.kayashov.bar.model.entity; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +@Entity +@Getter +@Setter +public class Rating { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private int rating; + + private boolean isFavorite; + + @ManyToOne + private CocktailEntity cocktail; + + @ManyToOne + private Visitor visitor; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/ReceiptEntity.java b/src/main/java/ru/kayashov/bar/model/entity/ReceiptEntity.java new file mode 100644 index 0000000..302c1ff --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/ReceiptEntity.java @@ -0,0 +1,37 @@ +package ru.kayashov.bar.model.entity; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Entity +@Table(name = "receipt") +@Getter +@Setter +public class ReceiptEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + private CocktailEntity cocktail; + + @ManyToOne + private IngredientEntity ingredient; + + private String measure; + + private Float count; + + @ManyToOne + private Unit unit; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/SessionEntity.java b/src/main/java/ru/kayashov/bar/model/entity/SessionEntity.java new file mode 100644 index 0000000..d771e18 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/SessionEntity.java @@ -0,0 +1,30 @@ +package ru.kayashov.bar.model.entity; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import java.util.List; + +@Entity +@Getter +@Setter +@Table(name = "session") +public class SessionEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private Boolean isActive; + + @ManyToOne + private BarEntity bar; + + @OneToMany(mappedBy = "session") + private List orders; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/StopList.java b/src/main/java/ru/kayashov/bar/model/entity/StopList.java new file mode 100644 index 0000000..236d207 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/StopList.java @@ -0,0 +1,26 @@ +package ru.kayashov.bar.model.entity; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.ManyToOne; + +@Entity +@Getter +@Setter +public class StopList { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + private BarEntity bar; + + @ManyToOne + private CocktailEntity cocktail; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/TagEntity.java b/src/main/java/ru/kayashov/bar/model/entity/TagEntity.java new file mode 100644 index 0000000..3c8281b --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/TagEntity.java @@ -0,0 +1,38 @@ +package ru.kayashov.bar.model.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToMany; +import javax.persistence.Table; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +@Entity +@Table(name = "tag") +@Getter +@Setter +@NoArgsConstructor +public class TagEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; + @Column(name = "en_name") + private String enName; + + @ManyToMany() + @JoinTable( + name = "cocktail_tags", + inverseJoinColumns = @JoinColumn(name = "cocktail_id"), + joinColumns = @JoinColumn(name = "tag_id") + ) + private List cocktails; +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/TypeEntity.java b/src/main/java/ru/kayashov/bar/model/entity/TypeEntity.java new file mode 100644 index 0000000..a79c2a6 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/TypeEntity.java @@ -0,0 +1,35 @@ +package ru.kayashov.bar.model.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +@Entity +@Getter +@Setter +@Table(name = "ingredient_type") +@NoArgsConstructor +public class TypeEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; + @Column(name = "en_name") + private String enName; + + @OneToMany(mappedBy = "type") + private List ingredients; + + public TypeEntity(String enName) { + this.enName = enName; + } +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/Unit.java b/src/main/java/ru/kayashov/bar/model/entity/Unit.java new file mode 100644 index 0000000..25796f2 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/Unit.java @@ -0,0 +1,25 @@ +package ru.kayashov.bar.model.entity; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Getter +@Setter +@NoArgsConstructor +public class Unit { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; + + public Unit(String name) { + this.name = name; + } +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/UnitRepository.java b/src/main/java/ru/kayashov/bar/model/entity/UnitRepository.java new file mode 100644 index 0000000..f93c147 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/UnitRepository.java @@ -0,0 +1,10 @@ +package ru.kayashov.bar.model.entity; + +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.Optional; + +public interface UnitRepository extends JpaRepository { + + Optional findByName(String unit); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/model/entity/UserRole.java b/src/main/java/ru/kayashov/bar/model/entity/UserRole.java new file mode 100644 index 0000000..2815898 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/UserRole.java @@ -0,0 +1,27 @@ +package ru.kayashov.bar.model.entity; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; + +import java.util.Set; +import java.util.stream.Collectors; + +@Getter +@RequiredArgsConstructor +public enum UserRole { + + USER(Set.of("user")), + BARMEN(Set.of("user", "barmen")), + ADMIN(Set.of("user", "barmen", "admin")), + ADMIN_NOT_BARMEN(Set.of("user", "admin")); + + private final Set authorities; + + public Set getAuthorities() { + return authorities.stream() + .map(SimpleGrantedAuthority::new) + .collect(Collectors.toSet()); + } +} diff --git a/src/main/java/ru/kayashov/bar/model/entity/Visitor.java b/src/main/java/ru/kayashov/bar/model/entity/Visitor.java new file mode 100644 index 0000000..9d19a51 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/model/entity/Visitor.java @@ -0,0 +1,80 @@ +package ru.kayashov.bar.model.entity; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; + +import javax.persistence.CascadeType; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToMany; +import javax.persistence.OneToMany; +import java.time.LocalDateTime; +import java.util.Collection; +import java.util.List; +import java.util.stream.Collectors; + +@Entity +@Getter +@Setter +public class Visitor implements UserDetails { + @Id + private Long id; + private String name; + private String lastName; + private Integer code; + private String login; + private String password; + private LocalDateTime expired; + + @OneToMany(cascade = CascadeType.ALL, mappedBy = "visitor") + private List rating; + + @OneToMany(mappedBy = "visitor") + private List residents; + + @Override + public Collection getAuthorities() { + return residents.stream() + .filter(BarResident::getActive) + .map(BarResident::getRole) + .map(UserRole::getAuthorities) + .flatMap(Collection::stream) + .collect(Collectors.toSet()); + } + + @Override + public String getPassword() { + return password; + } + + @Override + public String getUsername() { + return id.toString(); + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } +} diff --git a/src/main/java/ru/kayashov/bar/repository/AlcoholicRepository.java b/src/main/java/ru/kayashov/bar/repository/AlcoholicRepository.java new file mode 100644 index 0000000..229499e --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/AlcoholicRepository.java @@ -0,0 +1,12 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.AlcoholicEntity; + +import java.util.Optional; + +public interface AlcoholicRepository extends JpaRepository { + + Optional findByEnNameIgnoreCase(String enName); + Optional findByName(String name); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/BarEntityRepository.java b/src/main/java/ru/kayashov/bar/repository/BarEntityRepository.java new file mode 100644 index 0000000..18e456e --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/BarEntityRepository.java @@ -0,0 +1,7 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.BarEntity; + +public interface BarEntityRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/BarIngredientStorageRepository.java b/src/main/java/ru/kayashov/bar/repository/BarIngredientStorageRepository.java new file mode 100644 index 0000000..ff50f13 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/BarIngredientStorageRepository.java @@ -0,0 +1,7 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.BarIngredientStorage; + +public interface BarIngredientStorageRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/BarResidentRepository.java b/src/main/java/ru/kayashov/bar/repository/BarResidentRepository.java new file mode 100644 index 0000000..aa45f53 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/BarResidentRepository.java @@ -0,0 +1,7 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.BarResident; + +public interface BarResidentRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/CategoryRepository.java b/src/main/java/ru/kayashov/bar/repository/CategoryRepository.java new file mode 100644 index 0000000..3edfd71 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/CategoryRepository.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.AlcoholicEntity; +import ru.kayashov.bar.model.entity.CategoryEntity; + +import java.util.Optional; + +public interface CategoryRepository extends JpaRepository { + + Optional findByEnNameIgnoreCase(String enName); + Optional findByNameIgnoreCase(String name); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/CocktailRepository.java b/src/main/java/ru/kayashov/bar/repository/CocktailRepository.java new file mode 100644 index 0000000..79868c7 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/CocktailRepository.java @@ -0,0 +1,10 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.CocktailEntity; + +import java.util.Collection; +import java.util.List; + +public interface CocktailRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/GlassRepository.java b/src/main/java/ru/kayashov/bar/repository/GlassRepository.java new file mode 100644 index 0000000..5e8228e --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/GlassRepository.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.AlcoholicEntity; +import ru.kayashov.bar.model.entity.GlassEntity; + +import java.util.Optional; + +public interface GlassRepository extends JpaRepository { + + Optional findByEnNameIgnoreCase(String enName); + Optional findByNameIgnoreCase(String enName); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/IngredientRepository.java b/src/main/java/ru/kayashov/bar/repository/IngredientRepository.java new file mode 100644 index 0000000..6275c18 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/IngredientRepository.java @@ -0,0 +1,18 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import ru.kayashov.bar.model.entity.IngredientEntity; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; + +public interface IngredientRepository extends JpaRepository { + + Optional findByEnNameIgnoreCase(String name); + + @Query("select i from IngredientEntity i where upper(i.name) like upper(?1) or upper(i.enName) like upper(?1)") + List findAllByWord(String name, Pageable pageable); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/OrdersRepository.java b/src/main/java/ru/kayashov/bar/repository/OrdersRepository.java new file mode 100644 index 0000000..3b8c7dd --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/OrdersRepository.java @@ -0,0 +1,12 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.OrderStatus; +import ru.kayashov.bar.model.entity.Pay; + +import java.util.List; + +public interface OrdersRepository extends JpaRepository { + + List findAllByStatusOrderById(OrderStatus status); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/ParserEntityRepository.java b/src/main/java/ru/kayashov/bar/repository/ParserEntityRepository.java new file mode 100644 index 0000000..e67d794 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/ParserEntityRepository.java @@ -0,0 +1,7 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.ParserEntity; + +public interface ParserEntityRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/RatingRepository.java b/src/main/java/ru/kayashov/bar/repository/RatingRepository.java new file mode 100644 index 0000000..67097cc --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/RatingRepository.java @@ -0,0 +1,11 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.Rating; + +import java.util.Optional; + +public interface RatingRepository extends JpaRepository { + + Optional findRatingByCocktailIdAndVisitorId(Long cocktailId, Long visitorId); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/ReceiptRepository.java b/src/main/java/ru/kayashov/bar/repository/ReceiptRepository.java new file mode 100644 index 0000000..47fd288 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/ReceiptRepository.java @@ -0,0 +1,15 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.transaction.annotation.Transactional; +import ru.kayashov.bar.model.entity.ReceiptEntity; + +import java.util.List; + +public interface ReceiptRepository extends JpaRepository { + + List findAllByCocktailId(Long id); + + @Transactional + void deleteByCocktailId(Long id); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/SessionRepository.java b/src/main/java/ru/kayashov/bar/repository/SessionRepository.java new file mode 100644 index 0000000..9319570 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/SessionRepository.java @@ -0,0 +1,11 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.SessionEntity; + +import java.util.List; + +public interface SessionRepository extends JpaRepository { + + List findAllByIsActiveTrue(); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/StopListRepository.java b/src/main/java/ru/kayashov/bar/repository/StopListRepository.java new file mode 100644 index 0000000..3b008db --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/StopListRepository.java @@ -0,0 +1,7 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.StopList; + +public interface StopListRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/TagRepository.java b/src/main/java/ru/kayashov/bar/repository/TagRepository.java new file mode 100644 index 0000000..bcded07 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/TagRepository.java @@ -0,0 +1,13 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.TagEntity; + +import java.util.Optional; + +public interface TagRepository extends JpaRepository { + + Optional findByEnNameIgnoreCase(String name); + + Optional findByName(String names); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/TypeRepository.java b/src/main/java/ru/kayashov/bar/repository/TypeRepository.java new file mode 100644 index 0000000..e7fb51a --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/TypeRepository.java @@ -0,0 +1,18 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import ru.kayashov.bar.model.entity.TypeEntity; + +import java.util.List; +import java.util.Optional; + +public interface TypeRepository extends JpaRepository { + + Optional findByEnNameIgnoreCase(String name); + + Optional findByName(String name); + + @Query("select i from TypeEntity i where upper(i.name) like upper(?1) or upper(i.enName) like upper(?1)") + List findByWord(String word); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/repository/VisitorsRepository.java b/src/main/java/ru/kayashov/bar/repository/VisitorsRepository.java new file mode 100644 index 0000000..7c6d92d --- /dev/null +++ b/src/main/java/ru/kayashov/bar/repository/VisitorsRepository.java @@ -0,0 +1,14 @@ +package ru.kayashov.bar.repository; + +import org.springframework.data.jpa.repository.JpaRepository; +import ru.kayashov.bar.model.entity.Visitor; + +import java.util.List; +import java.util.Optional; + +public interface VisitorsRepository extends JpaRepository { + + Optional findByCode(Integer code); + + Optional findByLogin(String login); +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/schedule/Repairer.java b/src/main/java/ru/kayashov/bar/schedule/Repairer.java new file mode 100644 index 0000000..9c9d9a7 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/schedule/Repairer.java @@ -0,0 +1,179 @@ +package ru.kayashov.bar.schedule; + +import javax.transaction.Transactional; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.event.ContextRefreshedEvent; +import org.springframework.context.event.EventListener; +import org.springframework.stereotype.Component; +import ru.kayashov.bar.model.api.translate.Translate; +import ru.kayashov.bar.model.entity.CocktailEntity; +import ru.kayashov.bar.model.entity.IngredientEntity; +import ru.kayashov.bar.model.entity.ReceiptEntity; +import ru.kayashov.bar.model.entity.TypeEntity; +import ru.kayashov.bar.model.entity.Unit; +import ru.kayashov.bar.model.entity.UnitRepository; +import ru.kayashov.bar.repository.CocktailRepository; +import ru.kayashov.bar.repository.IngredientRepository; +import ru.kayashov.bar.repository.ReceiptRepository; +import ru.kayashov.bar.repository.TypeRepository; +import ru.kayashov.bar.service.integration.translate.TranslateService; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import static ru.kayashov.bar.service.integration.translate.TranslateService.translate; + +@Slf4j +@Component +@RequiredArgsConstructor +public class Repairer { + + private final IngredientRepository ingredientRepository; + private final TypeRepository tagRepository; + private final CocktailRepository cocktailRepository; + private final ReceiptRepository receiptRepository; + private final UnitRepository unitRepository; + + // @Transactional +// @EventListener(ContextRefreshedEvent.class) + public void repair() { + unitRepository.findAll().stream() + .peek(u -> u.setName(TranslateService.softTranslate(u.getName()))) + .forEach(unitRepository::save); + + log.info("repaired"); + } + + private Float convertValue(String value) { + if (value.contains("-") || value.contains("/")) { + float f; + if (value.contains("-")) { + f = average(value); + } else if (value.contains("/")) { + f = drob(value); + } else { + f = Float.parseFloat(value); + } + return f; + } + try { + return Float.parseFloat(value); + } catch (NumberFormatException e) { + return null; + } + } + + // @Transactional +// @EventListener(ContextRefreshedEvent.class) + public void repairAllowed() { + List cocktailEntities = cocktailRepository.findAll(); + + for (CocktailEntity cocktail : cocktailEntities) { + List receipts = cocktail.getReceipt(); +// if(receipts.stream().allMatch(r -> r.getIngredient().getIsHave())) { +// cocktail.setIsAllowed(true); +// } else { +// cocktail.setIsAllowed(false); +// } + cocktailRepository.save(cocktail); + } + log.info("Cocktails have been repaired"); + } + + @Transactional +// @EventListener(ContextRefreshedEvent.class) + public void repairReceipts() { +// List receipts = receiptRepository.findAll() +// .stream() +// .filter(r -> r.getMeasureText() != null && r.getMeasure() == null) +// .filter(r -> r.getMeasureText().contains("Slice")) +// .filter(r -> r.getMeasureText().split(" ").length == 2) +// .toList(); +// for (ReceiptEntity receipt : receipts) { +// String[] split = receipt.getMeasureText().split(" "); +// if (split[1].equalsIgnoreCase("Slice")) { +// receipt.setUnitText(split[1]); +// } else { +// continue; +// } +// log.info("convert {} - {}", receipt.getId(), receipt.getMeasureText()); +// +// String measure = split[0]; +// Float f; +// if (measure.contains("-")) { +// f = average(measure); +// } else if (measure.contains("/")) { +// f = drob(measure); +// } else { +// f = Float.parseFloat(measure); +// } +// +// receipt.setMeasure(f == 0 ? null : f); +// receiptRepository.save(receipt); +// } + log.info("repaired"); + } + + private Float average(String s) { + String[] split = s.split("-"); + float sum = 0f; + for (String str : split) { + if (str.contains("/")) { + sum += drob(str); + } else { + sum += Float.parseFloat(str); + } + } + return sum / split.length; + } + + private Float drob(String s) { + String[] split = s.split("/"); + return Float.parseFloat(split[0]) / Float.parseFloat(split[1]); + } + + // @Transactional +// @EventListener(ContextRefreshedEvent.class) + public void repairEnTag() { + List tagEntities = tagRepository.findAll() + .stream() + .filter(t -> t.getName() == null) + .toList(); + for (TypeEntity tagEntity : tagEntities) { + tagEntity.setName(translate(tagEntity.getEnName())); + tagRepository.save(tagEntity); + log.info("tag {} saved", tagEntity.getName()); + } + log.info("repaired"); + } + + + public void repairEnIngredients() { + List ingredients = ingredientRepository.findAll().stream() + .filter(i -> i.getName() == null) +// .filter(i -> i.getDescription() == null && i.getEnDescription() != null && !i.getEnDescription().isEmpty()) + .toList(); + + for (IngredientEntity i : ingredients) { + boolean needSave = false; + if (i.getName() == null) { + String s = translate(i.getEnName()); + i.setName(s); + needSave = true; + } + if (i.getDescription() == null) { +// String s = translate(i.getEnDescription()); +// i.setDescription(s); + needSave = true; + } + if (needSave) { + ingredientRepository.save(i); + log.info("Ingredient {} saved", i.getName()); + } + } + } +} diff --git a/src/main/java/ru/kayashov/bar/security/CustomUserDetailService.java b/src/main/java/ru/kayashov/bar/security/CustomUserDetailService.java new file mode 100644 index 0000000..2a2f7c5 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/security/CustomUserDetailService.java @@ -0,0 +1,40 @@ +package ru.kayashov.bar.security; + +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import ru.kayashov.bar.model.entity.BarResident; +import ru.kayashov.bar.model.entity.UserRole; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.VisitorsRepository; + +import java.util.Collection; +import java.util.Set; +import java.util.stream.Collectors; + +@Component +@RequiredArgsConstructor +public class CustomUserDetailService implements UserDetailsService { + + private final VisitorsRepository repository; + + @Override + public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { + return repository.findById(Long.parseLong(username)).orElseThrow(() -> new RuntimeException("Пользователь с email " + username + " не найден!")); + } + + @Transactional + public Set getAuthorities(long userId) { + Visitor visitor = repository.findById(userId).orElseThrow(RuntimeException::new); + return visitor.getResidents().stream() + .filter(BarResident::getActive) + .map(BarResident::getRole) + .map(UserRole::getAuthorities) + .flatMap(Collection::stream) + .collect(Collectors.toSet()); + } +} diff --git a/src/main/java/ru/kayashov/bar/security/JwtTokenFilter.java b/src/main/java/ru/kayashov/bar/security/JwtTokenFilter.java new file mode 100644 index 0000000..5d55889 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/security/JwtTokenFilter.java @@ -0,0 +1,63 @@ +package ru.kayashov.bar.security; + +import lombok.RequiredArgsConstructor; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.web.authentication.WebAuthenticationDetailsSource; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.filter.GenericFilterBean; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; + +@Component +@RequiredArgsConstructor +public class JwtTokenFilter extends GenericFilterBean { + + public static final String BEARER_PREFIX = "Bearer "; + public static final String HEADER_NAME = "Authorization"; + private final JwtTokenProvider jwtTokenProvider; + private final CustomUserDetailService detailService; + + @Override + public void doFilter(ServletRequest request, + ServletResponse response, + FilterChain filterChain) throws IOException, ServletException { + var authHeader = ((HttpServletRequest) request).getHeader(HEADER_NAME); + if (authHeader == null || !authHeader.startsWith(BEARER_PREFIX)) { + filterChain.doFilter(request, response); + return; + } + + // Обрезаем префикс и получаем имя пользователя из токена + var jwt = authHeader.substring(BEARER_PREFIX.length()); + var username = jwtTokenProvider.extractUserName(jwt); + + if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { + UserDetails userDetails = detailService.loadUserByUsername(username); + + // Если токен валиден, то аутентифицируем пользователя + if (jwtTokenProvider.isTokenValid(jwt, userDetails)) { + SecurityContext context = SecurityContextHolder.createEmptyContext(); + + UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken( + userDetails, + null, + detailService.getAuthorities(Long.parseLong(username)) + ); + + authToken.setDetails(new WebAuthenticationDetailsSource().buildDetails((HttpServletRequest) request)); + context.setAuthentication(authToken); + SecurityContextHolder.setContext(context); + } + } + filterChain.doFilter(request, response); + } +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/security/JwtTokenProvider.java b/src/main/java/ru/kayashov/bar/security/JwtTokenProvider.java new file mode 100644 index 0000000..0977e96 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/security/JwtTokenProvider.java @@ -0,0 +1,90 @@ +package ru.kayashov.bar.security; + +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jws; +import io.jsonwebtoken.JwtParser; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.io.Decoders; +import io.jsonwebtoken.security.Keys; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Component; +import ru.kayashov.bar.model.entity.Visitor; + +import javax.annotation.PostConstruct; +import javax.crypto.SecretKey; +import java.security.Key; +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.Base64; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Function; + +@Component +public class JwtTokenProvider { + + @Value("${token.signing.key}") + private String jwtSecretKey; + + @PostConstruct + protected void init() { + jwtSecretKey = Base64.getEncoder().encodeToString(jwtSecretKey.getBytes()); + } + + public String extractUserName(String token) { + return extractClaim(token, Claims::getSubject); + } + + public String generateToken(UserDetails userDetails) { + Map claims = new HashMap<>(); + if (userDetails instanceof Visitor customUserDetails) { + claims.put("id", customUserDetails.getId()); +// claims.put("role", customUserDetails.getRole()); + } + return generateToken(claims, userDetails); + } + + public boolean isTokenValid(String token, UserDetails userDetails) { + final String userName = extractUserName(token); + return (userName.equals(userDetails.getUsername())) && !isTokenExpired(token); + } + + private T extractClaim(String token, Function claimsResolvers) { + final Claims claims = extractAllClaims(token); + return claimsResolvers.apply(claims); + } + + private String generateToken(Map extraClaims, UserDetails userDetails) { + return Jwts.builder() + .claims(extraClaims) + .subject(userDetails.getUsername()) + .issuedAt(new Date()) + .expiration(new Date(Instant.now().plus(24, ChronoUnit.HOURS).toEpochMilli())) + .signWith(getSigningKey()) + .compact(); + } + + private boolean isTokenExpired(String token) { + return extractExpiration(token).before(new Date()); + } + + private Date extractExpiration(String token) { + return extractClaim(token, Claims::getExpiration); + } + + public Claims extractAllClaims(String token) { + return Jwts.parser() + .verifyWith((SecretKey) getSigningKey()) + .build() + .parseSignedClaims(token) + .getPayload(); + } + + private Key getSigningKey() { + String keyForSigning = jwtSecretKey; + byte[] bytes = Decoders.BASE64.decode(keyForSigning); + return Keys.hmacShaKeyFor(bytes); + } +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/security/SecurityConfig.java b/src/main/java/ru/kayashov/bar/security/SecurityConfig.java new file mode 100644 index 0000000..009742f --- /dev/null +++ b/src/main/java/ru/kayashov/bar/security/SecurityConfig.java @@ -0,0 +1,84 @@ +package ru.kayashov.bar.security; + +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.AuthenticationProvider; +import org.springframework.security.authentication.dao.DaoAuthenticationProvider; +import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.config.annotation.web.configurers.AuthorizeHttpRequestsConfigurer; +import org.springframework.security.config.annotation.web.configurers.CorsConfigurer; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.web.cors.CorsConfiguration; + +import java.util.List; + +import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS; + +@Configuration +@EnableWebSecurity +@EnableMethodSecurity +@RequiredArgsConstructor +public class SecurityConfig { + + private final JwtTokenFilter jwtTokenFilter; + private final CustomUserDetailService userDetailsService; + + @Bean + public PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(12); + } + + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + http.csrf(AbstractHttpConfigurer::disable) + .cors(this::corsConfiguration) + .authorizeHttpRequests(this::authorizeConfiguration) + .sessionManagement(manager -> manager.sessionCreationPolicy(STATELESS)) + .authenticationProvider(authenticationProvider()) + .addFilterBefore(jwtTokenFilter, UsernamePasswordAuthenticationFilter.class); + return http.build(); + } + + private void authorizeConfiguration(AuthorizeHttpRequestsConfigurer.AuthorizationManagerRequestMatcherRegistry request) { + request + // Можно указать конкретный путь, * - 1 уровень вложенности, ** - любое количество уровней вложенности + .antMatchers("/api/auth/**") + .permitAll() + .anyRequest() + .authenticated(); + } + + private void corsConfiguration(CorsConfigurer cors) { + cors.configurationSource(request -> { + var corsConfiguration = new CorsConfiguration(); + corsConfiguration.setAllowedOriginPatterns(List.of("*")); + corsConfiguration.setAllowedMethods(List.of("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS")); + corsConfiguration.setAllowedHeaders(List.of("*")); + corsConfiguration.setAllowCredentials(true); + return corsConfiguration; + }); + } + + @Bean + public AuthenticationProvider authenticationProvider() { + DaoAuthenticationProvider authProvider = new DaoAuthenticationProvider(); + authProvider.setUserDetailsService(userDetailsService); + authProvider.setPasswordEncoder(passwordEncoder()); + return authProvider; + } + + @Bean + public AuthenticationManager authenticationManager(AuthenticationConfiguration config) throws Exception { + return config.getAuthenticationManager(); + } + +} diff --git a/src/main/java/ru/kayashov/bar/service/CocktailService.java b/src/main/java/ru/kayashov/bar/service/CocktailService.java new file mode 100644 index 0000000..b24fde7 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/service/CocktailService.java @@ -0,0 +1,476 @@ +package ru.kayashov.bar.service; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.hibernate.Session; +import org.hibernate.query.Query; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; +import ru.kayashov.bar.controller.dto.cocktail.CocktailFilterRequestDto; +import ru.kayashov.bar.controller.dto.cocktail.CocktailForListResponseDto; +import ru.kayashov.bar.controller.dto.cocktail.CocktailModalDto; +import ru.kayashov.bar.controller.dto.cocktail.CocktailSimpleResponseDto; +import ru.kayashov.bar.controller.dto.cocktail.ReceiptResponseDto; +import ru.kayashov.bar.mapper.CocktailMapper; +import ru.kayashov.bar.model.entity.AlcoholicEntity; +import ru.kayashov.bar.model.entity.BarEntity; +import ru.kayashov.bar.model.entity.BarIngredientStorage; +import ru.kayashov.bar.model.entity.BarResident; +import ru.kayashov.bar.model.entity.CategoryEntity; +import ru.kayashov.bar.model.entity.CocktailEntity; +import ru.kayashov.bar.model.entity.GlassEntity; +import ru.kayashov.bar.model.entity.IngredientEntity; +import ru.kayashov.bar.model.entity.Rating; +import ru.kayashov.bar.model.entity.ReceiptEntity; +import ru.kayashov.bar.model.entity.StopList; +import ru.kayashov.bar.model.entity.TagEntity; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.AlcoholicRepository; +import ru.kayashov.bar.repository.CategoryRepository; +import ru.kayashov.bar.repository.CocktailRepository; +import ru.kayashov.bar.repository.GlassRepository; +import ru.kayashov.bar.repository.IngredientRepository; +import ru.kayashov.bar.repository.RatingRepository; +import ru.kayashov.bar.repository.ReceiptRepository; +import ru.kayashov.bar.repository.StopListRepository; +import ru.kayashov.bar.repository.TagRepository; +import ru.kayashov.bar.repository.VisitorsRepository; + +import javax.persistence.EntityManager; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Join; +import javax.persistence.criteria.JoinType; +import javax.persistence.criteria.Order; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import javax.persistence.criteria.Subquery; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.Optional; + +@Slf4j +@Service +@RequiredArgsConstructor +public class CocktailService { + + @Value("${cocktail.photo.path}") + private String photoFolder; + + private final StopListRepository stopListRepository; + + private final CocktailMapper mapper; + + private final CocktailRepository repository; + private final AlcoholicRepository alcoholicRepository; + private final CategoryRepository categoryRepository; + private final GlassRepository glassRepository; + private final TagRepository tagRepository; + + private final ReceiptRepository receiptRepository; + private final IngredientRepository ingredientRepository; + private final VisitorsRepository visitorsRepository; + private final RatingRepository ratingRepository; + private final VisitorService visitorService; + + private final EntityManager entityManager; + + /** + * Вывод меню бара + */ + @Transactional + public List getMenu(CocktailFilterRequestDto dto) { + return mapper.cocktailsToDtoList(criteria(dto), dto.getAll()); + } + + private List criteria(CocktailFilterRequestDto dto) { + Visitor visitor = visitorService.getCurrentVisitor(); + + Session session = entityManager.unwrap(Session.class); + CriteriaBuilder cb = session.getCriteriaBuilder(); + CriteriaQuery criteriaQuery = cb.createQuery(CocktailEntity.class); + Root root = criteriaQuery.from(CocktailEntity.class); + List predicates = new ArrayList<>(); + + if (!dto.getAll()) { + Long barId = visitor.getResidents().stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .map(BarEntity::getId) + .toList() + .get(0); + List cocktailIds = getAllowedCocktailIds(barId); + Predicate pr = root.get("id").in(cocktailIds); + predicates.add(pr); + + criteriaQuery.distinct(true); + + List stopListIds = getStopListIds(visitor); + predicates.add(cb.not(root.get("id").in(stopListIds))); + } + + if (!dto.getSearch().isEmpty()) { + String[] search = dto.getSearch().split(" "); + List in = new ArrayList<>(); + Join receiptJoin = root.join("receipt", JoinType.LEFT); + for (String s : search) { + in.add(cb.like(cb.lower(root.get("name")), "%" + s.toLowerCase() + "%")); + in.add(cb.like(cb.lower(receiptJoin.get("ingredient").get("name")), "%" + s.toLowerCase() + "%")); + } + predicates.add(cb.or(in.toArray(new Predicate[0]))); + } + + if (dto.getOnlyFavourite()) { + List favouriteCocktailsId = visitor.getRating().stream() + .filter(Rating::isFavorite) + .map(Rating::getCocktail) + .map(CocktailEntity::getId) + .toList(); + predicates.add(root.get("id").in(favouriteCocktailsId)); + } + + if (dto.getGlass() != null && !dto.getGlass().isEmpty()) { + predicates.add(root.get("glassEntity").get("name").in(dto.getGlass())); + } + + if (dto.getCategory() != null && !dto.getCategory().isEmpty()) { + predicates.add(root.get("categoryEntity").get("name").in(dto.getCategory())); + } + + if (dto.getAlcohol() != null && !dto.getAlcohol().isEmpty()) { + predicates.add(root.get("alcoholicEntity").get("name").in(dto.getAlcohol())); + } + + if (!dto.getTags().isEmpty()) { + Join tagJoin = root.join("tags", JoinType.LEFT); + predicates.add(tagJoin.get("name").in(dto.getTags())); + } + + if (dto.getInMenu() != null) { + List stopListIds = getStopListIds(visitor); + switch (dto.getInMenu()) { + case "Есть в меню" -> predicates.add(cb.not(root.get("id").in(stopListIds))); + case "Нет в меню" -> predicates.add(root.get("id").in(stopListIds)); + } + } + + if(dto.getICount() != null) { + log.info("iii"); + } +// +// if (!dto.getSortField().equals("name") || !dto.getSortOrder().equals("asc")) { +// cb.asc(root.get("name")); +//// query.orderBy(cb.asc(root.get("name").get(dto.getSortField()))); +// } else { +// criteriaQuery.orderBy(cb.asc(root.get("name"))); +// } + + //todo: доделать другие виды сортировки + Order order; + switch (dto.getSort()) { + case NAME_ASC -> order = cb.asc(root.get("name")); + case NAME_DESC -> order = cb.desc(root.get("name")); + default -> order = cb.asc(root.get("name")); + } + + criteriaQuery.where(predicates.toArray(new Predicate[0])) + .orderBy(order); + Query query = session.createQuery(criteriaQuery); + query.setFirstResult(dto.getPage() * dto.getSize()); + query.setMaxResults(dto.getSize()); + List cocktailEntities = query.getResultList(); + + log.info("Найдено {} коктейлей", cocktailEntities.size()); +// return Collections.emptyList(); + return cocktailEntities; + } + + private List getStopListIds(Visitor visitor) { + return visitor.getResidents() + .stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .map(BarEntity::getStops) + .flatMap(List::stream) + .map(StopList::getCocktail) + .map(CocktailEntity::getId) + .toList(); + } + + private List getAllowedCocktailIds(Long barId) { + CriteriaBuilder cb = entityManager.getCriteriaBuilder(); + CriteriaQuery query = cb.createQuery(Long.class); + + Root receiptRoot = query.from(ReceiptEntity.class); + Join ingredientJoin = receiptRoot.join("ingredient", JoinType.LEFT); + Join barIngredientStorageJoin = ingredientJoin.join("barIngredients", JoinType.LEFT); + + // Внешний подзапрос с NOT EXISTS + Subquery subquery = query.subquery(Long.class); + Root receiptSubRoot = subquery.from(ReceiptEntity.class); + Join ingredientSubJoin = receiptSubRoot.join("ingredient", JoinType.LEFT); + + // Внутренний подзапрос с NOT EXISTS + Subquery innerSubquery = subquery.subquery(Long.class); + Root barIngredientStorageInnerRoot = innerSubquery.from(BarIngredientStorage.class); + + // Условия внутреннего подзапроса + innerSubquery.select(barIngredientStorageInnerRoot.get("id")) + .where( + cb.equal(barIngredientStorageInnerRoot.get("ingredient"), ingredientSubJoin.get("id")), + cb.equal(barIngredientStorageInnerRoot.get("bar").get("id"), barId) + ); + + // Условия внешнего подзапроса + subquery.select(receiptSubRoot.get("id")) + .where( + cb.equal(receiptSubRoot.get("cocktail").get("id"), receiptRoot.get("cocktail").get("id")), + cb.not(cb.exists(innerSubquery)) + ); + + // Основной запрос + query.select(receiptRoot.get("cocktail").get("id")) + .distinct(true) + .where( + cb.equal(barIngredientStorageJoin.get("bar").get("id"), barId), + cb.not(cb.exists(subquery)) + ); + + return entityManager.createQuery(query).getResultList(); + } + + public CocktailForListResponseDto findById(Long id) { + CocktailEntity cocktail = repository.findById(id).orElseThrow(); + return mapper.cocktailToFullDto(cocktail); + } + + @Transactional + public void edit(CocktailForListResponseDto dto) { + CocktailEntity cocktail; + if (dto.getId() == null) { + if (dto.getName() == null) { + throw new RuntimeException("Коктейль не может быть без названия"); + } + cocktail = new CocktailEntity(); + cocktail.setReceipt(new ArrayList<>()); + } else { + cocktail = repository.findById(dto.getId()) + .orElseThrow(() -> new RuntimeException("Не удалось найти коктейль с id " + dto.getId())); + } + CategoryEntity category = categoryRepository.findByNameIgnoreCase(dto.getCategory()) + .orElseThrow(() -> new RuntimeException("Не удалось найти категорию " + dto.getCategory())); + GlassEntity glassEntity = glassRepository.findByNameIgnoreCase(dto.getGlass()) + .orElseThrow(() -> new RuntimeException("Не удалось найти посуду" + dto.getGlass())); + AlcoholicEntity alcoholicEntity = alcoholicRepository.findByName(dto.getAlcoholic()) + .orElseThrow(() -> new RuntimeException("Не удалось найти алкогольность" + dto.getAlcoholic())); + + cocktail.setName(dto.getName()); + cocktail.setInstructions(dto.getInstructions()); + cocktail.setImage(dto.getImage()); + cocktail.setVideo(cocktail.getVideo()); + cocktail.setCategoryEntity(category); + cocktail.setGlassEntity(glassEntity); + cocktail.setAlcoholicEntity(alcoholicEntity); + cocktail.setTags(findTags(dto.getTags())); + cocktail.setRating(cocktail.getRating()); + repository.save(cocktail); + + editCocktailReceipts(cocktail.getReceipt(), dto.getReceipt(), cocktail); + } + + public void editFavourite(Long cocktailId, Long visitorId, boolean put) { + Visitor visitor = visitorsRepository.findById(visitorId).orElseThrow(); + + Optional ratingOpt = ratingRepository.findRatingByCocktailIdAndVisitorId(cocktailId, visitorId); + + Rating rating; + if (put) { + CocktailEntity cocktail = repository.findById(cocktailId) + .orElseThrow(); + if (ratingOpt.isEmpty()) { + rating = new Rating(); + rating.setCocktail(cocktail); + rating.setVisitor(visitor); + } else { + rating = ratingOpt.get(); + } + rating.setFavorite(true); + ratingRepository.save(rating); + } else { + if (ratingOpt.isPresent()) { + rating = ratingOpt.get(); + rating.setFavorite(false); + ratingRepository.save(rating); + } + } + } + + public void setRating(Long cocktailId, Integer rating) { + Long id = ((Visitor) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getId(); + Visitor visitor = visitorsRepository.findById(id) + .orElseThrow(); + + Rating rate; + Optional rateOpt = ratingRepository.findRatingByCocktailIdAndVisitorId(cocktailId, id); + if (rateOpt.isEmpty()) { + rate = new Rating(); + rate.setVisitor(visitor); + rate.setCocktail(repository.findById(cocktailId).orElseThrow()); + rate.setFavorite(false); + } else { + rate = rateOpt.get(); + } + + rate.setRating(rating); + ratingRepository.save(rate); + } + + private void editCocktailReceipts(List old, List actual, CocktailEntity cocktail) { + for (ReceiptResponseDto receipt : actual) { + if (receipt.getId() == null) { + createNewReceipt(receipt, cocktail); + continue; + } + old.stream().filter(r -> receipt.getId().equals(r.getId())) + .findFirst() + .ifPresent(r -> equalReceipt(r, receipt)); + + old.removeIf(r -> r.getId().equals(receipt.getId())); + } + + old.forEach(r -> receiptRepository.deleteById(r.getId())); + } + + private void equalReceipt(ReceiptEntity old, ReceiptResponseDto actual) { + boolean needSave = false; + if (!actual.getIngredient().getId().equals(old.getIngredient().getId())) { + IngredientEntity ingredient = ingredientRepository.findById(actual.getIngredient().getId()).orElseThrow(); + old.setIngredient(ingredient); + needSave = true; + } + if (old.getUnit() == null || actual.getUnit() == null || + !Objects.equals(old.getUnit().getId(), actual.getUnit().getId())) { + old.setUnit(actual.getUnit()); + needSave = true; + } + if (!Objects.equals(old.getCount(), actual.getCount())) { + old.setCount(actual.getCount()); + needSave = true; + } + if (needSave) { + receiptRepository.save(old); + } + } + + private void createNewReceipt(ReceiptResponseDto receipt, CocktailEntity cocktail) { + ReceiptEntity receiptEntity = new ReceiptEntity(); + IngredientEntity ingredient = ingredientRepository.findById(receipt.getIngredient().getId()).orElseThrow(); + receiptEntity.setIngredient(ingredient); + receiptEntity.setCount(receipt.getCount()); + receiptEntity.setUnit(receipt.getUnit()); +// receiptEntity.setMeasure(receipt.getMeasure()); + receiptEntity.setCocktail(cocktail); + receiptRepository.save(receiptEntity); + } + + private List findTags(String tagString) { + if (tagString == null || tagString.isEmpty()) { + return new ArrayList<>(); + } + List tags = new ArrayList<>(); + for (String name : tagString.split(",")) { + if (name.isEmpty()) { + continue; + } + TagEntity tagEntity = tagRepository.findByName(name) + .orElseThrow(() -> new RuntimeException("Не удалось найти тег " + name)); + tags.add(tagEntity); + } + return tags; + } + + public void inMenuEdit(Long id, Boolean value) { + Visitor visitor = visitorService.getCurrentVisitor(); + CocktailEntity entity = repository.findById(id) + .orElseThrow(() -> new RuntimeException("Не удалось найти коктейль с id " + id)); + + BarEntity bar = visitor.getResidents().stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .toList() + .get(0); + + Optional stop = bar.getStops().stream() + .filter(s -> Objects.equals(s.getCocktail().getId(), id)) + .findFirst(); + + if (value && stop.isPresent()) { + stopListRepository.deleteById(stop.get().getId()); + return; + } + + if (!value && stop.isEmpty()) { + StopList stopList = new StopList(); + stopList.setCocktail(entity); + stopList.setBar(bar); + stopListRepository.save(stopList); + } + } + + public CocktailModalDto getForModal(Long id) { + CocktailEntity cocktail = repository.findById(id).orElseThrow(RuntimeException::new); + return mapper.cocktailToModalDto(cocktail); + } + + public List getReceipts(Long id) { + + return null; + } + + public List getSimple() { + return repository.findAll().stream() + .map(CocktailSimpleResponseDto::mapToDto) + .toList(); + } + + + public String savePhoto(MultipartFile file) throws IOException { + File folder = new File(photoFolder); + List files = Arrays.asList(Objects.requireNonNull(folder.listFiles())); + String fileName = getPhotoPath(files, file.getOriginalFilename()); + String fullName = photoFolder + "/" + fileName; + file.transferTo(new File(fullName)); + log.info("сохранено фото {}", fileName); + return "/assets/cocktails/" + fileName; + } + + private String getPhotoPath(List files, String originalName) { + if (files.stream().map(File::getName).anyMatch(name -> name.equals(originalName))) { + String[] split = originalName.split("\\."); + String name = concatName(split) + "_c." + split[split.length - 1]; + return getPhotoPath(files, name); + } + return originalName; + } + + private String concatName(String[] name) { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < name.length - 1; i++) { + sb.append(name[i]); + } + return sb.toString(); + } + + public void delete(Long id) { + CocktailEntity cocktail = repository.findById(id).orElseThrow(RuntimeException::new); + log.info("Удален коктейль {}", cocktail); + repository.delete(cocktail); + } +} diff --git a/src/main/java/ru/kayashov/bar/service/IngredientService.java b/src/main/java/ru/kayashov/bar/service/IngredientService.java new file mode 100644 index 0000000..7653653 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/service/IngredientService.java @@ -0,0 +1,109 @@ +package ru.kayashov.bar.service; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import ru.kayashov.bar.controller.dto.ingredient.IngredientResponseDto; +import ru.kayashov.bar.controller.dto.ingredient.IngredientSimpleResponseDto; +import ru.kayashov.bar.mapper.IngredientMapper; +import ru.kayashov.bar.model.entity.BarEntity; +import ru.kayashov.bar.model.entity.BarIngredientStorage; +import ru.kayashov.bar.repository.BarIngredientStorageRepository; +import ru.kayashov.bar.model.entity.BarResident; +import ru.kayashov.bar.model.entity.IngredientEntity; +import ru.kayashov.bar.model.entity.TypeEntity; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.IngredientRepository; +import ru.kayashov.bar.repository.TypeRepository; + +import java.util.List; +import java.util.Objects; + +@Slf4j +@Service +@RequiredArgsConstructor +public class IngredientService { + + private final VisitorService visitorService; + private final TypeRepository typeRepository; + private final IngredientRepository repository; + private final IngredientMapper mapper; + private final BarIngredientStorageRepository barIngredientStorageRepository; + + public IngredientEntity findIngredientByName(String name) { + return repository.findByEnNameIgnoreCase(name) + .orElseThrow(() -> new RuntimeException("Не удалось найти ингредиент с названием " + name)); + } + + private TypeEntity findTypeByName(String name) { + return typeRepository.findByName(name) + .orElse(null); + } + + /** + * Запрос ингредиентов бара + */ + public List getAll() { + List ingredients = repository.findAll(); + return mapper.mapIngredientsToDtoList(ingredients); + } + + public List getAllSimple() { + List ingredients = repository.findAll(); + return mapper.mapIngredientsToSimpleDtoList(ingredients); + } + + public IngredientEntity getIngredientById(Long id) { + return repository.findById(id).orElseThrow(); + } + + public void changeBarIngredient(Long id, boolean isHave) { + Visitor visitor = visitorService.getCurrentVisitor(); + BarEntity bar = visitor.getResidents() + .stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .toList() + .get(0); + List storage = bar.getIngredients(); + IngredientEntity ingredientEntity = getIngredientById(id); + if (isHave) { + BarIngredientStorage entity = new BarIngredientStorage(); + entity.setBar(bar); + entity.setIngredient(ingredientEntity); + //todo: прикрутить позже entity.setMeasure(); + entity = barIngredientStorageRepository.save(entity); + storage.add(entity); + } else { + storage.stream() + .filter(s -> Objects.equals(s.getIngredient().getId(), ingredientEntity.getId())) + .forEach(s -> barIngredientStorageRepository.deleteById(s.getId())); + } + } + + public boolean saveChange(IngredientResponseDto dto) { + if (dto.getId() == null) { + return false; + } + IngredientEntity entity = repository.findById(dto.getId()) + .orElse(null); + if (entity == null) { + return false; + } + + entity.setName(dto.getName()); + entity.setDescription(dto.getDescription()); +// entity.setEnName(dto.getEnName()); +// entity.setIsHave(dto.isHave()); + entity.setAbv(dto.getAbv()); + entity.setAlcohol(dto.getAlcohol()); + + TypeEntity type = findTypeByName(dto.getType()); + if (type == null) { + return false; + } + entity.setType(type); + repository.save(entity); + return true; + } +} diff --git a/src/main/java/ru/kayashov/bar/service/OrderService.java b/src/main/java/ru/kayashov/bar/service/OrderService.java new file mode 100644 index 0000000..f067e53 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/service/OrderService.java @@ -0,0 +1,104 @@ +package ru.kayashov.bar.service; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import ru.kayashov.bar.bot.domain.methods.AbstractSendMessage; +import ru.kayashov.bar.model.entity.BarEntity; +import ru.kayashov.bar.model.entity.BarResident; +import ru.kayashov.bar.model.entity.CocktailEntity; +import ru.kayashov.bar.model.entity.Pay; +import ru.kayashov.bar.model.entity.SessionEntity; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.CocktailRepository; +import ru.kayashov.bar.repository.OrdersRepository; +import ru.kayashov.bar.repository.VisitorsRepository; + +import java.time.LocalDateTime; +import java.util.List; + +import static ru.kayashov.bar.model.entity.OrderStatus.CANCEL; +import static ru.kayashov.bar.model.entity.OrderStatus.DONE; +import static ru.kayashov.bar.model.entity.OrderStatus.NEW; +import static ru.kayashov.bar.model.entity.UserRole.ADMIN; +import static ru.kayashov.bar.model.entity.UserRole.BARMEN; + +@Service +@RequiredArgsConstructor +public class OrderService { + + private final VisitorService visitorService; + private final CocktailRepository cocktailRepository; + private final OrdersRepository ordersRepository; + + /** + * Новый заказ + */ + public List createOrder(Long visitorId, Long cocktailId) { + Visitor visitor = visitorService.findById(visitorId); + BarEntity bar = visitor.getResidents().stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .toList() + .get(0); + SessionEntity session = bar.getSessions().stream() + .filter(SessionEntity::getIsActive) + .toList() + .get(0); + + CocktailEntity cocktail = cocktailRepository.findById(cocktailId).orElseThrow(); + + Pay pay = new Pay(); + pay.setStatus(NEW); + pay.setVisitor(visitor); + pay.setCocktail(cocktail); + pay.setSession(session); + pay.setCreatedAt(LocalDateTime.now()); + ordersRepository.save(pay); + + return bar.getVisitors().stream() + .filter(BarResident::getActive) + .filter(BarResident::getInvited) + .filter(b -> b.getRole() == ADMIN || b.getRole() == BARMEN) + .map(BarResident::getVisitor) + .map(admin -> createOrderMessage(admin, visitor, cocktail)) + .toList(); + } + + private AbstractSendMessage createOrderMessage(Visitor admin, Visitor client, CocktailEntity cocktail) { + return AbstractSendMessage.builder() + .chatId(admin.getId()) + .message(client.getName() + " " + client.getLastName() + " заказал(а) коктейль " + cocktail.getName()) + .build(); + } + + /** + * Обновить статус заказа + */ + public AbstractSendMessage updateOrder(boolean check, long l) { + Pay pay = ordersRepository.findById(l).orElseThrow(); + pay.setStatus(check ? DONE : CANCEL); + pay.setClosedAt(LocalDateTime.now()); + ordersRepository.save(pay); + + return AbstractSendMessage.builder() + .chatId(pay.getVisitor().getId()) + .message("Коктейль " + pay.getCocktail().getName() + (check ? " готов" : " отменен")) + .build(); + } + + /** + * Получить заказ из очереди + */ + public List getOrders() { + Visitor visitor = visitorService.getCurrentVisitor(); + return visitor.getResidents().stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .map(BarEntity::getSessions) + .flatMap(List::stream) + .filter(SessionEntity::getIsActive) + .map(SessionEntity::getOrders) + .flatMap(List::stream) + .toList(); + } +} diff --git a/src/main/java/ru/kayashov/bar/service/ParserQueueService.java b/src/main/java/ru/kayashov/bar/service/ParserQueueService.java new file mode 100644 index 0000000..34e65bd --- /dev/null +++ b/src/main/java/ru/kayashov/bar/service/ParserQueueService.java @@ -0,0 +1,55 @@ +package ru.kayashov.bar.service; + +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import ru.kayashov.bar.model.entity.ParserEntity; +import ru.kayashov.bar.repository.ParserEntityRepository; + +import java.util.List; + +@Service +@RequiredArgsConstructor +public class ParserQueueService { + + private final ParserEntityRepository repository; + + public Long getIngredientOffset() { + return getEntity().getIngredientId(); + } + + public Long getCocktailOffset() { + return getEntity().getCocktailId(); + } + + public void setStepIngredients(long id, int step) { + ParserEntity entity = getEntity(); + entity.setIngredientId(id); + entity.setIngredientError(entity.getIngredientError() + step); + repository.save(entity); + } + + public void setStepCocktails(long id, int step) { + ParserEntity entity = getEntity(); + entity.setCocktailId(id); + entity.setCocktailError(entity.getCocktailError() + step); + repository.save(entity); + } + + private ParserEntity getEntity() { + List entities = repository.findAll(); + if(entities.isEmpty()) { + ParserEntity entity = getNewEntity(); + return repository.save(entity); + } + return entities.get(0); + } + + private ParserEntity getNewEntity() { + ParserEntity entity = new ParserEntity(); + entity.setIngredientId(1L); + entity.setCocktailId(1L); + entity.setCocktailError(0L); + entity.setCocktailError(0L); + return entity; + } +} diff --git a/src/main/java/ru/kayashov/bar/service/RestUtil.java b/src/main/java/ru/kayashov/bar/service/RestUtil.java new file mode 100644 index 0000000..41ee640 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/service/RestUtil.java @@ -0,0 +1,22 @@ +package ru.kayashov.bar.service; + +import lombok.experimental.UtilityClass; +import org.springframework.http.RequestEntity; +import org.springframework.http.ResponseEntity; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.RestTemplate; + +import java.util.Optional; + +@UtilityClass +public class RestUtil { + + public static Optional> sendRequest(Class responseType, RequestEntity request) { + try { + RestTemplate restTemplate = new RestTemplate(); + return Optional.of(restTemplate.exchange(request, responseType)); + } catch (HttpClientErrorException e) { + return Optional.empty(); + } + } +} \ No newline at end of file diff --git a/src/main/java/ru/kayashov/bar/service/SessionService.java b/src/main/java/ru/kayashov/bar/service/SessionService.java new file mode 100644 index 0000000..438d090 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/service/SessionService.java @@ -0,0 +1,190 @@ +package ru.kayashov.bar.service; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Service; +import ru.kayashov.bar.controller.dto.bar.BarResponseDto; +import ru.kayashov.bar.controller.dto.ingredient.IngredientSimpleResponseDto; +import ru.kayashov.bar.controller.dto.cocktail.ReceiptResponseDto; +import ru.kayashov.bar.model.entity.BarEntity; +import ru.kayashov.bar.model.entity.BarResident; +import ru.kayashov.bar.repository.BarResidentRepository; +import ru.kayashov.bar.model.entity.CategoryEntity; +import ru.kayashov.bar.model.entity.CocktailEntity; +import ru.kayashov.bar.model.entity.GlassEntity; +import ru.kayashov.bar.model.entity.SessionEntity; +import ru.kayashov.bar.model.entity.UserRole; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.BarEntityRepository; +import ru.kayashov.bar.repository.CategoryRepository; +import ru.kayashov.bar.repository.CocktailRepository; +import ru.kayashov.bar.repository.GlassRepository; +import ru.kayashov.bar.repository.RatingRepository; +import ru.kayashov.bar.repository.SessionRepository; +import ru.kayashov.bar.repository.VisitorsRepository; + +import java.util.Comparator; +import java.util.List; + +@Slf4j +@Service +@RequiredArgsConstructor +public class SessionService { + + private final SessionRepository sessionRepository; + private final VisitorsRepository visitorsRepository; + private final GlassRepository glassRepository; + private final CategoryRepository categoryRepository; + private final CocktailRepository cocktailRepository; + private final RatingRepository ratingRepository; + private final VisitorService visitorService; + private final BarEntityRepository barEntityRepository; + private final BarResidentRepository barResidentRepository; + + /** + * Поиск матрицы коктейлей + * Справочник состоит из количества недостающих компонентов и списка коктейлей + */ +// public Map> getCocktailMatrix() { +// return cocktailRepository.findAll().stream() +// .collect(Collectors.groupingBy(this::getRemainingIngredient)); +// } + + /** + * Поиск активной сессии + */ + public SessionEntity findActiveSession() { + List sessions = sessionRepository.findAll() + .stream() + .sorted(Comparator.comparingLong(SessionEntity::getId).reversed()) + .limit(1) + .toList(); + if (!sessions.isEmpty()) { + return sessions.get(0); + } + return createEmptySession(); + } + + public Visitor getVisitor() { + Long id = ((Visitor) SecurityContextHolder.getContext() + .getAuthentication() + .getPrincipal()) + .getId(); + return visitorsRepository.findById(id) + .orElseThrow(); + } + + public SessionEntity createEmptySession() { + BarEntity bar = visitorService.getCurrentVisitor().getResidents() + .stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .toList() + .get(0); + SessionEntity session = new SessionEntity(); + session.setBar(bar); + session.setIsActive(true); + return sessionRepository.save(session); + } + +// private long getRemainingIngredient(CocktailEntity cocktail) { +// return cocktail.getReceipt() +// .stream() +// .map(ReceiptEntity::getIngredient) +//// .map(IngredientEntity::getIsHave) +// .filter(b -> !b).count(); +// } + + public List getGlassList() { + return glassRepository.findAll(); + } + + public List getCategoryList() { + return categoryRepository.findAll(); + } + + public List getReceiptList(Long cocktailId) { + CocktailEntity cocktail = cocktailRepository.findById(cocktailId).orElseThrow(); + return cocktail.getReceipt().stream() + .map(e -> ReceiptResponseDto.builder() + .id(e.getId()) + .ingredient(IngredientSimpleResponseDto.mapToDto(e.getIngredient())) + .measure(e.getMeasure()) + .build()) + .toList(); + } + + public List getBarList(Boolean my) { + List residents = visitorService.getCurrentVisitor().getResidents(); + if (my) { + return residents.stream() + .map(r -> mapBarToDto(r.getBar(), r, true)) + .toList(); + } + List myBar = residents.stream() + .map(BarResident::getBar) + .map(BarEntity::getId) + .toList(); + return barEntityRepository.findAll().stream() + .filter(b -> !myBar.contains(b.getId())) + .map(b -> mapBarToDto(b, null, false)) + .toList(); + } + + public void addToMyList(BarResponseDto dto) { + Visitor visitor = visitorService.getCurrentVisitor(); + BarEntity bar = barEntityRepository.findById(dto.getId()).orElseThrow(); + + boolean noEnter = visitor.getResidents().stream().filter(BarResident::getActive).toList().isEmpty(); + + BarResident resident = new BarResident(); + resident.setBar(bar); + resident.setInvited(true); + resident.setRole(UserRole.USER); + resident.setVisitor(visitor); + resident.setActive(noEnter); + barResidentRepository.save(resident); + } + + + public void enterChange(Long id, Boolean value) { + Visitor visitor = visitorService.getCurrentVisitor(); + List residents = visitor.getResidents() + .stream() + .filter(r -> r.getBar().getId().equals(id)) + .toList(); + if(residents.isEmpty()) { + throw new RuntimeException("Бар с id " + id + " отсутствует в списке баров пользователя с id " + visitor.getId()); + } + residents.stream() + .peek(r -> r.setActive(value)) + .forEach(barResidentRepository::save); + + log.info("Пользователь {}-{} {} {} c id {}", + visitor.getId(), + visitor.getName().strip(), + visitor.getLastName().strip(), + value ? "вошел в бар" : "вышел из бара", + id); + } + + private BarResponseDto mapBarToDto(BarEntity bar, BarResident resident, Boolean my) { + BarResponseDto dto = new BarResponseDto(); + dto.setId(bar.getId()); + dto.setName(bar.getName()); + boolean barOpen = !bar.getSessions().stream().filter(SessionEntity::getIsActive).toList().isEmpty(); + if (my) { + boolean invited = resident.getInvited(); + dto.setOpen(barOpen && invited); + dto.setEnter(resident.getActive()); + dto.setMyRole(resident.getRole().toString()); + } else { + dto.setOpen(barOpen); + dto.setEnter(false); + dto.setMyRole(UserRole.USER.toString()); + } + + return dto; + } +} diff --git a/src/main/java/ru/kayashov/bar/service/VisitorService.java b/src/main/java/ru/kayashov/bar/service/VisitorService.java new file mode 100644 index 0000000..4a5ddb1 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/service/VisitorService.java @@ -0,0 +1,78 @@ +package ru.kayashov.bar.service; + +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Service; +import ru.kayashov.bar.controller.dto.VisitorResponseDto; +import ru.kayashov.bar.model.entity.BarEntity; +import ru.kayashov.bar.model.entity.BarIngredientStorage; +import ru.kayashov.bar.model.entity.BarResident; +import ru.kayashov.bar.repository.BarResidentRepository; +import ru.kayashov.bar.model.entity.IngredientEntity; +import ru.kayashov.bar.model.entity.Visitor; +import ru.kayashov.bar.repository.VisitorsRepository; + +import java.util.List; +import java.util.Objects; + +@Service +@RequiredArgsConstructor +public class VisitorService { + + private final VisitorsRepository visitorsRepository; + private final BarResidentRepository barResidentRepository; + + public Visitor getCurrentVisitor() { + Long id = ((Visitor) SecurityContextHolder.getContext().getAuthentication().getPrincipal()).getId(); + return findById(id); + } + + public Visitor findById(Long id) { + return visitorsRepository.findById(id).orElseThrow(() -> new RuntimeException("Visitor not found. id: " + id)); + } + + public List getAllowedIngredients() { + return getCurrentVisitor().getResidents() + .stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .map(BarEntity::getIngredients) + .flatMap(List::stream) + .map(BarIngredientStorage::getIngredient) + .map(IngredientEntity::getId) + .toList(); + } + + public List findAll() { + return getCurrentVisitor().getResidents().stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .map(BarEntity::getVisitors) + .flatMap(List::stream) + .map(this::mapBarResidentToDto) + .toList(); + } + + private VisitorResponseDto mapBarResidentToDto(BarResident resident) { + VisitorResponseDto dto = new VisitorResponseDto(); + dto.setId(resident.getVisitor().getId()); + dto.setName(resident.getVisitor().getName()); + dto.setLastName(resident.getVisitor().getLastName()); + dto.setInvited(resident.getInvited()); + dto.setRole(resident.getRole().toString()); + dto.setIsActive(resident.getActive()); + return dto; + } + + public void invited(Boolean value, Long id) { + getCurrentVisitor().getResidents() + .stream() + .filter(BarResident::getActive) + .map(BarResident::getBar) + .map(BarEntity::getVisitors) + .flatMap(List::stream) + .filter(v -> Objects.equals(v.getVisitor().getId(), id)) + .peek(v -> v.setInvited(value)) + .forEach(barResidentRepository::save); + } +} diff --git a/src/main/java/ru/kayashov/bar/service/integration/cocktail/CocktailApiService.java b/src/main/java/ru/kayashov/bar/service/integration/cocktail/CocktailApiService.java new file mode 100644 index 0000000..8d8e3a9 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/service/integration/cocktail/CocktailApiService.java @@ -0,0 +1,47 @@ +package ru.kayashov.bar.service.integration.cocktail; + +import org.springframework.http.HttpEntity; +import org.springframework.http.RequestEntity; +import org.springframework.stereotype.Service; +import ru.kayashov.bar.model.Cocktail; +import ru.kayashov.bar.model.Ingredient; +import ru.kayashov.bar.model.api.cocktail.Cocktails; +import ru.kayashov.bar.model.api.cocktail.Ingredients; +import ru.kayashov.bar.service.RestUtil; + +import java.util.Collections; +import java.util.List; + +@Service +public class CocktailApiService { + + public Ingredient getIngredientById(long id) { + String url = "https://www.thecocktaildb.com/api/json/v1/1/lookup.php?iid="; + return RestUtil.sendRequest(Ingredients.class, + RequestEntity.get(url + id).build()) + .map(HttpEntity::getBody) + .map(Ingredients::getIngredients) + .map(i -> i.get(0)) + .orElse(null); + } + + public Cocktail getCocktailById(long id) { + String url = "https://www.thecocktaildb.com/api/json/v1/1/lookup.php?i="; + return RestUtil.sendRequest(Cocktails.class, + RequestEntity.get(url + id).build()) + .map(HttpEntity::getBody) + .map(Cocktails::getDrinks) + .map(i -> i.get(0)) + .orElse(null); + } + + public List getCocktailByLiteral(String literal) { + String url = "https://www.thecocktaildb.com/api/json/v1/1/search.php?f="; + return RestUtil.sendRequest(Cocktails.class, + RequestEntity.get(url + literal).build()) + .map(HttpEntity::getBody) + .map(Cocktails::getDrinks) + .orElse(Collections.emptyList()); + } + +} diff --git a/src/main/java/ru/kayashov/bar/service/integration/translate/TranslateService.java b/src/main/java/ru/kayashov/bar/service/integration/translate/TranslateService.java new file mode 100644 index 0000000..384e6f6 --- /dev/null +++ b/src/main/java/ru/kayashov/bar/service/integration/translate/TranslateService.java @@ -0,0 +1,53 @@ +package ru.kayashov.bar.service.integration.translate; + +import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.RequestEntity; +import org.springframework.http.ResponseEntity; +import ru.kayashov.bar.model.api.translate.Request; +import ru.kayashov.bar.model.api.translate.Response; +import ru.kayashov.bar.model.api.translate.Translate; +import ru.kayashov.bar.service.RestUtil; + +import java.util.List; +import java.util.Optional; + +@Slf4j +@UtilityClass +public class TranslateService { + + private static final String TOKEN = "t1.9euelZrJyoyTmZGQyc2TiZCWlYyLiu3rnpWazsubi8vOzcycms6Znc2dkI7l8_dgXlNC-e9UAyJ4_t3z9yANUUL571QDInj-zef1656Vms2Uio2JmJ6OxpucmoqNjZ6J7_zF656Vms2Uio2JmJ6OxpucmoqNjZ6J.uXSVsrpZcSgQ9qz0-wx6WR79rvq14QCtlC6tnWvah33YRrNqSEBFXBwqMoEq18nG3wHElKE4NsHXK3lxV9SSBQ"; + + public static String translate(String text) { + return sendTranslate(text) + .map(TranslateService::getTranslateText) + .orElseThrow(RuntimeException::new); + } + + public static String softTranslate(String text) { + Optional> opt = sendTranslate(text); + if(opt.isPresent()) { + return TranslateService.getTranslateText(opt.get()); + } else { + log.warn("Не удалось перевести текст {}", text); + return text; + } + } + + private static Optional> sendTranslate(String text) { + return RestUtil.sendRequest(Response.class, + RequestEntity.post("https://translate.api.cloud.yandex.net/translate/v2/translate") + .header("Authorization", "Bearer " + TOKEN) + .body(new Request(List.of(text)))); + } + + private static String getTranslateText(ResponseEntity response) { + Response resp = response.getBody(); + StringBuilder sb = new StringBuilder(); + List translates = resp.getTranslations(); + for(Translate translate : translates) { + sb.append(translate.getText()); + } + return sb.toString(); + } +} diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF new file mode 100644 index 0000000..e13e0ce --- /dev/null +++ b/src/main/resources/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: ru.kayashov.bar.MyBarApplication + diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..9335316 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,20 @@ +spring.application.name=myBar + +cocktail.photo.path=${COCKTAIL_PHOTO_PATH:/mnt/sdb1/my-bar-front/build/assets/cocktails} + +spring.datasource.driver-class-name=org.postgresql.Driver +spring.datasource.url=${DB_URL:jdbc:postgresql://192.168.1.100:5432/drinks} +spring.datasource.username=${DB_NAME:nextcloud} +spring.datasource.password=${DB_PASSWORD:kayash73} +spring.datasource.hikari.minimum-idle=1 +spring.datasource.hikari.idle-timeout=30000 +spring.datasource.hikari.max-lifetime=600000 + +spring.jpa.generate-ddl=true + +telegram.bot.username=${BOT_USERNAME:kayashovBarClientBot} +telegram.bot.bot-token=${BOT_TOKEN:7664353842:AAE8UzUQ3NsAYxXwmFUIpoulWEXARHT9Yuo} + +token.signing.key=${SIGNING_KEY:ThisIsKayashovBarSecretKey-1.0.0Version} + +spring.jpa.show-sql=false \ No newline at end of file diff --git a/src/test/java/ru/kayashov/bar/MyBarApplicationTests.java b/src/test/java/ru/kayashov/bar/MyBarApplicationTests.java new file mode 100644 index 0000000..4884a64 --- /dev/null +++ b/src/test/java/ru/kayashov/bar/MyBarApplicationTests.java @@ -0,0 +1,8 @@ +package ru.kayashov.bar; + +class MyBarApplicationTests { + + void contextLoads() { + } + +}