From be06ad92997f359d5503f9e4b197e59f0f1b4391 Mon Sep 17 00:00:00 2001 From: Hoang Anh Date: Thu, 22 Apr 2021 10:15:38 +0700 Subject: [PATCH] devrupt submission --- .dockerignore | 3 + .gitignore | 53 + ai/Dockerfile | 40 + ai/README.md | 43 + ai/app.py | 192 + ai/src/feature_engineering.py | 295 + ai/src/guest_identification.py | 164 + ai/src/guest_type_detection.py | 44 + ai/src/modeling_for_LTV.py | 122 + ai/src/potential_guest_segmentation.py | 244 + ai/src/utils/__init__.py | 13 + ai/src/utils/customized_primitives.py | 143 + ai/src/utils/customized_variable_types.py | 76 + ai/src/utils/data_cleaning.py | 50 + ai/src/utils/data_imputation.py | 108 + ai/src/utils/data_visualization.py | 55 + ai/src/utils/feature_engineering.py | 209 + ai/src/utils/feature_selection.py | 423 + ai/src/utils/model_training.py | 54 + ai/src/utils/utils.py | 315 + ai/src/utils/variable_type_detection.py | 80 + .../test-file-id-input/1st_reservation.csv | 203 + .../1st_reservation_fillna.csv | 203 + .../1st_reservation_processed.csv | 203 + .../test-file-id-input/DBSCAN_output.csv | 203 + .../LTV_class_of_long_time_guests.csv | 6 + .../LTV_class_of_short_time_guests.csv | 4 + .../data_input_with_guest_id.csv | 319 + .../test-file-id-input/final_output.json | 1 + .../potential_model_output.csv | 203 + .../test-file-id-input/returning_guests.csv | 115 + .../returning_guests_fillna.csv | 115 + .../returning_guests_processed.csv | 9 + ai/wsgi.py | 4 + client/.browserslistrc | 17 + client/.dockerignore | 193 + client/.editorconfig | 16 + client/.gitignore | 50 + client/Dockerfile | 12 + client/angular.json | 149 + client/e2e/protractor.conf.js | 38 + client/e2e/src/app.e2e-spec.ts | 23 + client/e2e/src/app.po.ts | 11 + client/e2e/tsconfig.json | 13 + client/karma.conf.js | 44 + client/nginx.conf | 17 + client/package-lock.json | 42599 ++++++++++++++++ client/package.json | 64 + client/sass/_colors-variables.scss | 17 + .../foundation-sites/_foundation-styles.scss | 22 + client/sass/foundation-sites/_settings.scss | 86 + client/src/app/apis/auth.apis.service.ts | 39 + client/src/app/apis/inventory.apis.service.ts | 28 + client/src/app/apis/process.apis.service.ts | 89 + client/src/app/app.component.scss | 0 client/src/app/app.component.ts | 49 + client/src/app/app.module.ts | 26 + client/src/app/app.routing.ts | 39 + client/src/app/graphql/config/codegen.yml | 29 + client/src/app/graphql/generated/graphql.ts | 243 + client/src/app/graphql/generated/mutations.ts | 22 + client/src/app/graphql/generated/queries.ts | 70 + .../graphql/mutations/exchangeToken.graphql | 9 + .../graphql/mutations/startProcess.graphql | 7 + .../graphql/queries/getApaleoClient.graphql | 6 + .../graphql/queries/getClvClassList.graphql | 9 + .../getCustomerLifetimeValueList.graphql | 10 + .../getIdentifiedGuestSegmentation.graphql | 6 + .../graphql/queries/getProcessState.graphql | 7 + .../queries/getReservationList.graphql | 5 + .../app/graphql/queries/getStatistic.graphql | 7 + .../queries/getTotalRecordCount.graphql | 3 + .../analytic-result.component.scss | 0 .../analytic-result.component.ts | 69 + .../analytic-result/analytic-result.module.ts | 31 + .../modules/callback/callback.component.scss | 0 .../modules/callback/callback.component.ts | 40 + .../app/modules/callback/callback.module.ts | 19 + .../authentication-flow.component.scss | 10 + .../authentication-flow.component.ts | 158 + .../processing-flow.component.scss | 10 + .../processing-flow.component.ts | 119 + .../components/stepper/stepper.component.scss | 24 + .../components/stepper/stepper.component.ts | 121 + .../src/app/modules/home/home.component.scss | 31 + client/src/app/modules/home/home.component.ts | 46 + client/src/app/modules/home/home.module.ts | 67 + client/src/app/scope.resolver.ts | 17 + client/src/app/services/app-router.service.ts | 22 + .../app/services/execute-graphql.service.ts | 59 + client/src/app/services/loading.service.ts | 18 + client/src/app/services/token.service.ts | 24 + .../app/shared/features/chart/chart.module.ts | 15 + .../components/column/column.component.scss | 0 .../components/column/column.component.ts | 166 + .../chart/components/pie/pie.component.scss | 0 .../chart/components/pie/pie.component.ts | 99 + .../dashboard/dashboard.component.scss | 20 + .../features/dashboard/dashboard.component.ts | 85 + .../features/dashboard/dashboard.module.ts | 25 + .../statistic/statistic.component.scss | 0 .../statistic/statistic.component.ts | 40 + client/src/assets/.gitkeep | 0 .../src/assets/HCGlogo-Transparent-White.png | Bin 0 -> 37123 bytes client/src/assets/logo-apaleo.png | Bin 0 -> 4655 bytes client/src/assets/process.png | Bin 0 -> 49584 bytes client/src/environments/environment.prod.ts | 12 + client/src/environments/environment.ts | 25 + client/src/favicon.ico | Bin 0 -> 639 bytes client/src/index.html | 16 + client/src/main.ts | 41 + client/src/polyfills.ts | 62 + client/src/styles.scss | 278 + client/src/test.ts | 22 + client/tsconfig.app.json | 15 + client/tsconfig.json | 23 + client/tsconfig.spec.json | 18 + client/tslint.json | 152 + docker-compose.yml | 32 + pipeline.png | Bin 0 -> 126426 bytes services/.gitignore | 187 + services/Dockerfile | 13 + services/HELP.md | 10 + services/README.md | 38 + services/mvnw | 310 + services/mvnw.cmd | 182 + services/pom.xml | 114 + .../devrupt/services/ServicesApplication.java | 38 + .../services/config/graphql/GraphQLUtils.java | 62 + .../services/config/graphql/OneGraphQL.java | 121 + .../config/graphql/RequestContent.java | 21 + .../config/graphql/ResponseContent.java | 26 + .../graphql/error/CustomGraphQLException.java | 48 + .../graphql/instance/GraphQLInstance.java | 26 + .../CustomInstrumentation.java | 61 + .../CustomInstrumentationState.java | 25 + .../graphql/typeWiring/FetcherContainer.java | 10 + .../graphql/typeWiring/TypeWiringFactory.java | 34 + .../RestTemplateStandardCookieCustomizer.java | 26 + .../RestTemplateResponseErrorHandler.java | 51 + .../exception/RestTemplateException.java | 18 + .../download/DownloadController.java | 53 + .../controller/graphql/GraphQLController.java | 45 + .../rest/identity/IdentityController.java | 37 + .../com/devrupt/services/dto/BaseFilter.java | 13 + .../com/devrupt/services/dto/MonetaryDto.java | 19 + .../dto/identity/ApaleoClientDto.java | 22 + .../services/dto/identity/TokenRequest.java | 29 + .../identity/TokenRequestGrantTypeEnum.java | 6 + .../services/dto/identity/TokenResponse.java | 26 + .../integration/CustomerLifetimeValueDto.java | 40 + .../CustomerLifetimeValueFilter.java | 20 + .../dto/integration/ProcessDetails.java | 21 + .../services/dto/integration/ProcessDto.java | 41 + .../dto/integration/ProcessFilter.java | 14 + .../dto/integration/ProcessInput.java | 22 + .../dto/integration/ProcessStatusEnum.java | 10 + .../dto/integration/TrainingDataInput.java | 73 + .../dto/reservation/ReservationDto.java | 55 + .../dto/reservation/ReservationFilter.java | 21 + .../dto/reservation/ReservationGuestDto.java | 31 + .../dto/reservation/ReservationListDto.java | 24 + .../dto/reservation/ReservationRoomDto.java | 24 + .../reservation/ReservationTimeSliceDto.java | 19 + .../services/dto/statistic/ClvClassDto.java | 19 + .../dto/statistic/ClvClassFilter.java | 20 + .../services/dto/statistic/ClvTypeDto.java | 18 + .../IdentifiedGuestSegmentationDto.java | 18 + .../IdentifiedGuestSegmentationFilter.java | 20 + .../services/dto/statistic/StatisticDto.java | 19 + .../dto/statistic/StatisticFilter.java | 20 + .../identity/ExchangeTokenFetcher.java | 27 + .../identity/GetApaleoClientFetcher.java | 21 + .../fetcher/identity/IdentityContainer.java | 43 + .../fetcher/identity/RenewTokenFetcher.java | 27 + .../GetCustomerLifetimeValueListFetcher.java | 29 + .../integration/GetProcessStateFetcher.java | 27 + .../GetTotalRecordCountFetcher.java | 26 + .../integration/IntegrationContainer.java | 47 + .../integration/StartProcessFetcher.java | 27 + .../GetReservationListFetcher.java | 30 + .../reservation/ReservationContainer.java | 34 + .../statistic/GetClvClassListFetcher.java | 32 + ...GetIdentifiedGuestSegmentationFetcher.java | 32 + .../statistic/GetStatisticFetcher.java | 30 + .../fetcher/statistic/StatisticContainer.java | 42 + .../service/export/ExportService.java | 8 + .../service/export/ExportServiceImpl.java | 108 + .../service/identity/IdentityService.java | 19 + .../service/identity/IdentityServiceImpl.java | 108 + .../integration/IntegrationService.java | 26 + .../integration/IntegrationServiceImpl.java | 235 + .../reservation/ReservationService.java | 9 + .../reservation/ReservationServiceImpl.java | 78 + .../service/statistic/StatisticService.java | 16 + .../statistic/StatisticServiceImpl.java | 171 + .../com/devrupt/services/utils/RestUtils.java | 56 + .../src/main/resources/application.properties | 14 + .../resources/graphqls/_firstInit.graphql | 14 + .../graphqls/identity/identity-enum.graphql | 0 .../graphqls/identity/identity-input.graphql | 6 + .../graphqls/identity/identity-query.graphql | 11 + .../graphqls/identity/identity-type.graphql | 14 + .../integration/integration-enum.graphql | 7 + .../integration/integration-input.graphql | 21 + .../integration/integration-query.graphql | 11 + .../integration/integration-type.graphql | 20 + .../reservation/reservation-enum.graphql | 0 .../reservation/reservation-input.graphql | 8 + .../reservation/reservation-query.graphql | 4 + .../reservation/reservation-type.graphql | 60 + .../graphqls/statistic/statistic-enum.graphql | 0 .../statistic/statistic-input.graphql | 15 + .../statistic/statistic-query.graphql | 6 + .../graphqls/statistic/statistic-type.graphql | 26 + .../resources/template/data_input_schema.json | 20 + .../template/data_output_schema.json | 19 + .../src/main/resources/template/query.example | 159 + .../services/ServicesApplicationTests.java | 13 + structure.png | Bin 0 -> 25134 bytes 220 files changed, 54395 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore create mode 100644 ai/Dockerfile create mode 100644 ai/README.md create mode 100644 ai/app.py create mode 100644 ai/src/feature_engineering.py create mode 100644 ai/src/guest_identification.py create mode 100644 ai/src/guest_type_detection.py create mode 100644 ai/src/modeling_for_LTV.py create mode 100644 ai/src/potential_guest_segmentation.py create mode 100644 ai/src/utils/__init__.py create mode 100644 ai/src/utils/customized_primitives.py create mode 100644 ai/src/utils/customized_variable_types.py create mode 100644 ai/src/utils/data_cleaning.py create mode 100644 ai/src/utils/data_imputation.py create mode 100644 ai/src/utils/data_visualization.py create mode 100644 ai/src/utils/feature_engineering.py create mode 100644 ai/src/utils/feature_selection.py create mode 100644 ai/src/utils/model_training.py create mode 100644 ai/src/utils/utils.py create mode 100644 ai/src/utils/variable_type_detection.py create mode 100644 ai/storage/test-file-id-input/1st_reservation.csv create mode 100644 ai/storage/test-file-id-input/1st_reservation_fillna.csv create mode 100644 ai/storage/test-file-id-input/1st_reservation_processed.csv create mode 100644 ai/storage/test-file-id-input/DBSCAN_output.csv create mode 100644 ai/storage/test-file-id-input/LTV_class_of_long_time_guests.csv create mode 100644 ai/storage/test-file-id-input/LTV_class_of_short_time_guests.csv create mode 100644 ai/storage/test-file-id-input/data_input_with_guest_id.csv create mode 100644 ai/storage/test-file-id-input/final_output.json create mode 100644 ai/storage/test-file-id-input/potential_model_output.csv create mode 100644 ai/storage/test-file-id-input/returning_guests.csv create mode 100644 ai/storage/test-file-id-input/returning_guests_fillna.csv create mode 100644 ai/storage/test-file-id-input/returning_guests_processed.csv create mode 100644 ai/wsgi.py create mode 100644 client/.browserslistrc create mode 100644 client/.dockerignore create mode 100644 client/.editorconfig create mode 100644 client/.gitignore create mode 100644 client/Dockerfile create mode 100644 client/angular.json create mode 100644 client/e2e/protractor.conf.js create mode 100644 client/e2e/src/app.e2e-spec.ts create mode 100644 client/e2e/src/app.po.ts create mode 100644 client/e2e/tsconfig.json create mode 100644 client/karma.conf.js create mode 100644 client/nginx.conf create mode 100644 client/package-lock.json create mode 100644 client/package.json create mode 100644 client/sass/_colors-variables.scss create mode 100644 client/sass/foundation-sites/_foundation-styles.scss create mode 100644 client/sass/foundation-sites/_settings.scss create mode 100644 client/src/app/apis/auth.apis.service.ts create mode 100644 client/src/app/apis/inventory.apis.service.ts create mode 100644 client/src/app/apis/process.apis.service.ts create mode 100644 client/src/app/app.component.scss create mode 100644 client/src/app/app.component.ts create mode 100644 client/src/app/app.module.ts create mode 100644 client/src/app/app.routing.ts create mode 100644 client/src/app/graphql/config/codegen.yml create mode 100644 client/src/app/graphql/generated/graphql.ts create mode 100644 client/src/app/graphql/generated/mutations.ts create mode 100644 client/src/app/graphql/generated/queries.ts create mode 100644 client/src/app/graphql/mutations/exchangeToken.graphql create mode 100644 client/src/app/graphql/mutations/startProcess.graphql create mode 100644 client/src/app/graphql/queries/getApaleoClient.graphql create mode 100644 client/src/app/graphql/queries/getClvClassList.graphql create mode 100644 client/src/app/graphql/queries/getCustomerLifetimeValueList.graphql create mode 100644 client/src/app/graphql/queries/getIdentifiedGuestSegmentation.graphql create mode 100644 client/src/app/graphql/queries/getProcessState.graphql create mode 100644 client/src/app/graphql/queries/getReservationList.graphql create mode 100644 client/src/app/graphql/queries/getStatistic.graphql create mode 100644 client/src/app/graphql/queries/getTotalRecordCount.graphql create mode 100644 client/src/app/modules/analytic-result/analytic-result.component.scss create mode 100644 client/src/app/modules/analytic-result/analytic-result.component.ts create mode 100644 client/src/app/modules/analytic-result/analytic-result.module.ts create mode 100644 client/src/app/modules/callback/callback.component.scss create mode 100644 client/src/app/modules/callback/callback.component.ts create mode 100644 client/src/app/modules/callback/callback.module.ts create mode 100644 client/src/app/modules/home/components/authentication-flow/authentication-flow.component.scss create mode 100644 client/src/app/modules/home/components/authentication-flow/authentication-flow.component.ts create mode 100644 client/src/app/modules/home/components/processing-flow/processing-flow.component.scss create mode 100644 client/src/app/modules/home/components/processing-flow/processing-flow.component.ts create mode 100644 client/src/app/modules/home/components/stepper/stepper.component.scss create mode 100644 client/src/app/modules/home/components/stepper/stepper.component.ts create mode 100644 client/src/app/modules/home/home.component.scss create mode 100644 client/src/app/modules/home/home.component.ts create mode 100644 client/src/app/modules/home/home.module.ts create mode 100644 client/src/app/scope.resolver.ts create mode 100644 client/src/app/services/app-router.service.ts create mode 100644 client/src/app/services/execute-graphql.service.ts create mode 100644 client/src/app/services/loading.service.ts create mode 100644 client/src/app/services/token.service.ts create mode 100644 client/src/app/shared/features/chart/chart.module.ts create mode 100644 client/src/app/shared/features/chart/components/column/column.component.scss create mode 100644 client/src/app/shared/features/chart/components/column/column.component.ts create mode 100644 client/src/app/shared/features/chart/components/pie/pie.component.scss create mode 100644 client/src/app/shared/features/chart/components/pie/pie.component.ts create mode 100644 client/src/app/shared/features/dashboard/dashboard.component.scss create mode 100644 client/src/app/shared/features/dashboard/dashboard.component.ts create mode 100644 client/src/app/shared/features/dashboard/dashboard.module.ts create mode 100644 client/src/app/shared/features/dashboard/statistic/statistic.component.scss create mode 100644 client/src/app/shared/features/dashboard/statistic/statistic.component.ts create mode 100644 client/src/assets/.gitkeep create mode 100644 client/src/assets/HCGlogo-Transparent-White.png create mode 100644 client/src/assets/logo-apaleo.png create mode 100644 client/src/assets/process.png create mode 100644 client/src/environments/environment.prod.ts create mode 100644 client/src/environments/environment.ts create mode 100644 client/src/favicon.ico create mode 100644 client/src/index.html create mode 100644 client/src/main.ts create mode 100644 client/src/polyfills.ts create mode 100644 client/src/styles.scss create mode 100644 client/src/test.ts create mode 100644 client/tsconfig.app.json create mode 100644 client/tsconfig.json create mode 100644 client/tsconfig.spec.json create mode 100644 client/tslint.json create mode 100644 docker-compose.yml create mode 100644 pipeline.png create mode 100644 services/.gitignore create mode 100644 services/Dockerfile create mode 100644 services/HELP.md create mode 100644 services/README.md create mode 100644 services/mvnw create mode 100644 services/mvnw.cmd create mode 100644 services/pom.xml create mode 100644 services/src/main/java/com/devrupt/services/ServicesApplication.java create mode 100644 services/src/main/java/com/devrupt/services/config/graphql/GraphQLUtils.java create mode 100644 services/src/main/java/com/devrupt/services/config/graphql/OneGraphQL.java create mode 100644 services/src/main/java/com/devrupt/services/config/graphql/RequestContent.java create mode 100644 services/src/main/java/com/devrupt/services/config/graphql/ResponseContent.java create mode 100644 services/src/main/java/com/devrupt/services/config/graphql/error/CustomGraphQLException.java create mode 100644 services/src/main/java/com/devrupt/services/config/graphql/instance/GraphQLInstance.java create mode 100644 services/src/main/java/com/devrupt/services/config/graphql/instrumentation/CustomInstrumentation.java create mode 100644 services/src/main/java/com/devrupt/services/config/graphql/instrumentation/CustomInstrumentationState.java create mode 100644 services/src/main/java/com/devrupt/services/config/graphql/typeWiring/FetcherContainer.java create mode 100644 services/src/main/java/com/devrupt/services/config/graphql/typeWiring/TypeWiringFactory.java create mode 100644 services/src/main/java/com/devrupt/services/config/restTemplate/cookie/RestTemplateStandardCookieCustomizer.java create mode 100644 services/src/main/java/com/devrupt/services/config/restTemplate/errorHandler/RestTemplateResponseErrorHandler.java create mode 100644 services/src/main/java/com/devrupt/services/config/restTemplate/exception/RestTemplateException.java create mode 100644 services/src/main/java/com/devrupt/services/controller/download/DownloadController.java create mode 100644 services/src/main/java/com/devrupt/services/controller/graphql/GraphQLController.java create mode 100644 services/src/main/java/com/devrupt/services/controller/rest/identity/IdentityController.java create mode 100644 services/src/main/java/com/devrupt/services/dto/BaseFilter.java create mode 100644 services/src/main/java/com/devrupt/services/dto/MonetaryDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/identity/ApaleoClientDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/identity/TokenRequest.java create mode 100644 services/src/main/java/com/devrupt/services/dto/identity/TokenRequestGrantTypeEnum.java create mode 100644 services/src/main/java/com/devrupt/services/dto/identity/TokenResponse.java create mode 100644 services/src/main/java/com/devrupt/services/dto/integration/CustomerLifetimeValueDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/integration/CustomerLifetimeValueFilter.java create mode 100644 services/src/main/java/com/devrupt/services/dto/integration/ProcessDetails.java create mode 100644 services/src/main/java/com/devrupt/services/dto/integration/ProcessDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/integration/ProcessFilter.java create mode 100644 services/src/main/java/com/devrupt/services/dto/integration/ProcessInput.java create mode 100644 services/src/main/java/com/devrupt/services/dto/integration/ProcessStatusEnum.java create mode 100644 services/src/main/java/com/devrupt/services/dto/integration/TrainingDataInput.java create mode 100644 services/src/main/java/com/devrupt/services/dto/reservation/ReservationDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/reservation/ReservationFilter.java create mode 100644 services/src/main/java/com/devrupt/services/dto/reservation/ReservationGuestDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/reservation/ReservationListDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/reservation/ReservationRoomDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/reservation/ReservationTimeSliceDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/statistic/ClvClassDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/statistic/ClvClassFilter.java create mode 100644 services/src/main/java/com/devrupt/services/dto/statistic/ClvTypeDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/statistic/IdentifiedGuestSegmentationDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/statistic/IdentifiedGuestSegmentationFilter.java create mode 100644 services/src/main/java/com/devrupt/services/dto/statistic/StatisticDto.java create mode 100644 services/src/main/java/com/devrupt/services/dto/statistic/StatisticFilter.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/identity/ExchangeTokenFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/identity/GetApaleoClientFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/identity/IdentityContainer.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/identity/RenewTokenFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/integration/GetCustomerLifetimeValueListFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/integration/GetProcessStateFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/integration/GetTotalRecordCountFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/integration/IntegrationContainer.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/integration/StartProcessFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/reservation/GetReservationListFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/reservation/ReservationContainer.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/statistic/GetClvClassListFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/statistic/GetIdentifiedGuestSegmentationFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/statistic/GetStatisticFetcher.java create mode 100644 services/src/main/java/com/devrupt/services/fetcher/statistic/StatisticContainer.java create mode 100644 services/src/main/java/com/devrupt/services/service/export/ExportService.java create mode 100644 services/src/main/java/com/devrupt/services/service/export/ExportServiceImpl.java create mode 100644 services/src/main/java/com/devrupt/services/service/identity/IdentityService.java create mode 100644 services/src/main/java/com/devrupt/services/service/identity/IdentityServiceImpl.java create mode 100644 services/src/main/java/com/devrupt/services/service/integration/IntegrationService.java create mode 100644 services/src/main/java/com/devrupt/services/service/integration/IntegrationServiceImpl.java create mode 100644 services/src/main/java/com/devrupt/services/service/reservation/ReservationService.java create mode 100644 services/src/main/java/com/devrupt/services/service/reservation/ReservationServiceImpl.java create mode 100644 services/src/main/java/com/devrupt/services/service/statistic/StatisticService.java create mode 100644 services/src/main/java/com/devrupt/services/service/statistic/StatisticServiceImpl.java create mode 100644 services/src/main/java/com/devrupt/services/utils/RestUtils.java create mode 100644 services/src/main/resources/application.properties create mode 100644 services/src/main/resources/graphqls/_firstInit.graphql create mode 100644 services/src/main/resources/graphqls/identity/identity-enum.graphql create mode 100644 services/src/main/resources/graphqls/identity/identity-input.graphql create mode 100644 services/src/main/resources/graphqls/identity/identity-query.graphql create mode 100644 services/src/main/resources/graphqls/identity/identity-type.graphql create mode 100644 services/src/main/resources/graphqls/integration/integration-enum.graphql create mode 100644 services/src/main/resources/graphqls/integration/integration-input.graphql create mode 100644 services/src/main/resources/graphqls/integration/integration-query.graphql create mode 100644 services/src/main/resources/graphqls/integration/integration-type.graphql create mode 100644 services/src/main/resources/graphqls/reservation/reservation-enum.graphql create mode 100644 services/src/main/resources/graphqls/reservation/reservation-input.graphql create mode 100644 services/src/main/resources/graphqls/reservation/reservation-query.graphql create mode 100644 services/src/main/resources/graphqls/reservation/reservation-type.graphql create mode 100644 services/src/main/resources/graphqls/statistic/statistic-enum.graphql create mode 100644 services/src/main/resources/graphqls/statistic/statistic-input.graphql create mode 100644 services/src/main/resources/graphqls/statistic/statistic-query.graphql create mode 100644 services/src/main/resources/graphqls/statistic/statistic-type.graphql create mode 100644 services/src/main/resources/template/data_input_schema.json create mode 100644 services/src/main/resources/template/data_output_schema.json create mode 100644 services/src/main/resources/template/query.example create mode 100644 services/src/test/java/com/devrupt/services/ServicesApplicationTests.java create mode 100644 structure.png diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..7e74565 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +/etc +/log +/api/__pycache__ \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3394899 --- /dev/null +++ b/.gitignore @@ -0,0 +1,53 @@ +# These are some examples of commonly ignored file patterns. +# You should customize this list as applicable to your project. +# Learn more about .gitignore: +# https://www.atlassian.com/git/tutorials/saving-changes/gitignore + +# Node artifact files +node_modules/ +dist/ + +# Compiled Java class files +*.class + +# Compiled Python bytecode +*.py[cod] + +# Log files +*.log + +# Package files +*.jar + +# Maven +target/ +dist/ + +# JetBrains IDE +.idea/ + +# Unit test reports +TEST*.xml + +# Generated by MacOS +.DS_Store + +# Generated by Windows +Thumbs.db + +# Applications +*.app +*.exe +*.war + +# Large media files +*.mp4 +*.tiff +*.avi +*.flv +*.mov +*.wmv + +../api/__pycache__/ +src/__pycache__/ +utils/__pycache__/ diff --git a/ai/Dockerfile b/ai/Dockerfile new file mode 100644 index 0000000..d768323 --- /dev/null +++ b/ai/Dockerfile @@ -0,0 +1,40 @@ +# Download base image ubuntu 18.04 +FROM ubuntu:18.04 + + +# Add source code and saved file +ENV HOME /root +ENV PYTHONPATH "/usr/lib/python3/dist-packages:/usr/local/lib/python3.6/site-packages" + +RUN apt-get update -y && apt-get install -y python3 \ + python3-pip \ + build-essential +CMD python3 --version +RUN pip3 install pandas +RUN pip3 install requests +RUN pip3 install flask +RUN pip3 install numpy +RUN pip3 install lxml +RUN pip3 install gunicorn +RUN pip3 install gevent +RUN pip3 install scikit-learn +RUN pip3 install featuretools +RUN pip3 install fuzzymatcher +RUN pip3 install cmake +RUN pip3 install xgboost +# COPY SourceCode /app + +# WORKDIR /app + +# # CMD pip3 freeze + + +# CMD ls +#copy app +COPY . /ai +WORKDIR / +RUN chmod -x /ai/app.py + +CMD ["gunicorn", "--workers", "3", "--worker-class", "gthread ", "--threads", "3", "-b", ":5000", "-t", "900", "--reload", "ai.wsgi:app"] + +#docker stop $(docker ps -a -q) \ No newline at end of file diff --git a/ai/README.md b/ai/README.md new file mode 100644 index 0000000..904c990 --- /dev/null +++ b/ai/README.md @@ -0,0 +1,43 @@ +# Working Flow Explanation +![Pipeline](../pipeline.png) +## 1. Guest Identification +The first task in Guest Customer Lifetime Value model is to identify all possible guest profiles exist in the hospitality database. + +Based on data that provided by Apaleo API, we propose using the [**Fuzzy Matcher**](https://github.com/RobinL/fuzzymatcher) method for guest identification task: +- Identification fields: First Name, Last Name, Email +- Threshold of [Levenshtein Distance](https://en.wikipedia.org/wiki/Levenshtein_distance): 0.15 + +## 2. Guest Type Detection +By checking number of bookings per guest, we build 2 datasets from original one: +- **1st** reservations of **ALL** guests +- **ALL** reservations of **returning** guests + +## 3. Feature Engineering +To solve [**CRM**](https://en.wikipedia.org/wiki/Customer_relationship_management) problem, we learn that [Recency-Frequency-Monetary (**RFM**)](https://en.wikipedia.org/wiki/RFM_(market_research)) will be our key features. For fast implementation, we use [**featuretools**](https://github.com/alteryx/featuretools) to apply **aggregation** and **transformation** on raw features. + +- With **returning guest**, we use **domain knowledge** to generate new features and then, apply [featuretools](https://github.com/alteryx/featuretools) for one-hot encoding **categorical** features + - **Recency** features: InactiveDays, ... + - **Frequency** features: NumberOfOrders, ... + - **Monetary** features: TotalRevenue, ... + - **Non-RFM** features: AverageNightsInHouse, NumberOfRooms, ... +- For **1st reservation**, our pipeline depends on [featuretools](https://github.com/alteryx/featuretools) to build new features and then, automatically remove noisy and correlated features. + +## 4. Modeling +### 4.1. Customer Lifetime Value [CLV] +#### 4.1.1. Segmentation +We filter customers whose lifetime is more than **k=12** months for this model; the others whose lifetime is less than 12 months will be classified by next model. For simplicity and speed, we choose **k-means clustering** as base model. +- Step 1: perform clustering on each **RFM features** (with adaptive **k** ranging from 2 to 9) +- Step 2: calculate **RFM score** by weighted aggregation from 3 models above +- Step 3: perform clustering on **RFM score** (with fixed **k=3** as Low, Middle, High classes of CLV) + +The result is **CLV classes** of so-called **long-term** customers, this result will be used as **label** for next models. + +#### 4.1.2. Classification +For the **short-term** customers (who have spent less than 12 months as customer), we remove **RFM features** and train [**XGBoost**](https://xgboost.readthedocs.io/en/latest/get_started.html) with labels from the above model. + + **Noted:** If the database does not have any guest over 12 months lifetime, the model will automatically pick top 50% lifetime for training the CLV classification model + +### 4.3. Potential VIP Guest Prediction +The First-Time Guest does not have the RFM information which means they can not be predicted by the LTV classification model. So we propose the method for calculating the probability LTV Classes of First-Time Guest based on the correlation between the 1st reservation of Returing Guest (which has LTV classes) and First-Time Guest. + +Our approach is Density-based spatial clustering of applications with noise ([**DBSCAN**](https://en.wikipedia.org/wiki/DBSCAN)) clustering algorithm for its efficent in density information retrieval, noise removal and good performance. diff --git a/ai/app.py b/ai/app.py new file mode 100644 index 0000000..640f13f --- /dev/null +++ b/ai/app.py @@ -0,0 +1,192 @@ +from flask import Flask, request +import ast +import json +import pandas as pd +import traceback +from datetime import datetime +import os +import sys +import shutil +from glob import glob + +from ai.src.guest_identification import guest_identification_process +from ai.src.guest_type_detection import guest_type_detector +from ai.src.feature_engineering import feature_engineering_pipeline +from ai.src.modeling_for_LTV import LTV_model +from ai.src.potential_guest_segmentation import Potential_model + +app = Flask(__name__) +parent_directory = "/ai/storage/" +def return_object(dataList_output, return_code = 200, return_status = "SUCCESS", return_message = "Returns success", error_log = ""): + return_body = json.dumps( + { + "code": return_code, + "status": return_status, + "message": return_message, + "dataList": dataList_output, + "errorlog": error_log + } + ) + return return_body + +def clean_up_storage(): + folder_path = parent_directory + "*" + list_sub_folder = glob(folder_path) + for folder in list_sub_folder: + folder_lifetime = (datetime.now().timestamp() - os.stat(folder).st_ctime)/3600 + ## Try to remove tree; if failed show an error using try...except on screen + if folder_lifetime > 1.5: + try: + shutil.rmtree(folder) + except OSError as e: + print ("Error: %s - %s." % (e.filename, e.strerror)) + +@app.route('/send-input-data', methods=['POST']) +def get_input_data(): + # Clean up the storage + try: + clean_up_storage() + except Exception as error_sum: + print("Error summary: ", error_sum) + error_log = traceback.format_exc() + print("Error Details: ", str(error_log)) + + try: + req_data = request.get_json() + + file_id = request.headers['FileID'] + try: + force_run = request.headers['ForceRun'] + except: + force_run = 0 + if force_run != 0: + print(f"\n\n*************************************************************************") + print(f"!!! WARNING !!! RUNNING WITH FORCE RUN MAY OCCURED ERRORS WHEN PROCESSING") + print(f"*************************************************************************\n\n") + + try: + current_year = request.headers['CurrentYear'] + if len(str(current_year)) != 4 or current_year < 2000: + current_year = 0 + except: + current_year = 0 + + folder_path = parent_directory + str(file_id) + "/" + # Create Directory with Header FileID + print(f"Current directory: {os.getcwd()}") + + try: + os.mkdir(os.path.join(parent_directory, str(file_id))) + except Exception as error_sum: + print("Error summary: ", error_sum) + error_log = traceback.format_exc() + print("Error Details: ", str(error_log)) + + # RUN THE MAIN PROCESS + df_guest_identification = guest_identification_process(req_data, str(folder_path), force_run) + + if len(df_guest_identification) < 1000 and force_run == 0: + json_return_output = return_object(dataList_output = [], return_code = 400, return_status = "ERROR", return_message = "File is too small, required at least 1,000 observations for running the model.") + return json_return_output + elif len(df_guest_identification) > 75000 and force_run == 0: + json_return_output = return_object(dataList_output = [], return_code = 400, return_status = "ERROR", return_message = "File is too large, the maximum observations supported is 75,000.") + return json_return_output + elif len(df_guest_identification) < 300 and force_run == 1: + json_return_output = return_object(dataList_output = [], return_code = 400, return_status = "ERROR", return_message = "File is too small, the force-run only run with at least 300 observations.") + return json_return_output + + guest_type_detector(str(folder_path)) + + feature_engineering_pipeline(str(folder_path), current_year) + + LTV_model(str(folder_path), True) + + Potential_model(str(folder_path)) + + json_return_output = return_object(dataList_output = [], return_code = 200, return_status = "SUCCESS", return_message = "Successfully Run.") + except Exception as error_sum: + print("Error summary: ", error_sum) + error_log = traceback.format_exc() + print("Error Details: ", str(error_log)) + + with open(folder_path + "error_log.txt", "w") as text_file: + text_file.write(str(error_log)) + + json_return_output = return_object(dataList_output = [], return_code = 400, return_status = "ERROR", return_message = "Fail when processing", error_log = str(error_log)) + return json_return_output + +@app.route('/check-process-status', methods=['GET']) +def check_process_status(): + try: + fileID = request.headers['FileID'] + directory_path = parent_directory + str(fileID) + + if os.path.isfile(directory_path + '/final_output.json'): + return_status = "READY" + return_message = "File is ready." + error_log = "" + elif os.path.isfile(directory_path + '/error_log.txt'): + return_status = "ERROR" + file_content = open(directory_path + '/error_log.txt', "r") + error_log = str(file_content.read()) + return_message = "File occured error when processing." + elif os.path.isfile(directory_path + '/data_input_with_guest_id.csv'): + return_status = "PROCESSING" + return_message = "File is processing." + error_log = "" + else: + return_status = "PROCESSING" + return_message = "File was not found yet." + error_log = "" + + json_return_output = return_object(dataList_output = [], return_code = 200, return_status = return_status, return_message = return_message, error_log = str(error_log)) + except Exception as error_sum: + print("Error summary: ", error_sum) + error_log = traceback.format_exc() + print("Error Details: ", str(error_log)) + json_return_output = return_object(dataList_output = [], return_code = 400, return_status = "ERROR", return_message = "Fail when processing", error_log = str(error_log)) + return json_return_output + +@app.route('/get-prediction-file', methods=['GET']) +def send_prediction_file(): + try: + fileID = request.headers['FileID'] + directory_path = parent_directory + str(fileID) + # Opening JSON file + file_name = open(directory_path + '/final_output.json',) + # returns JSON object as + # a dictionary + data = json.load(file_name) + json_return_output = return_object(dataList_output = data, return_code = 200, return_status = "SUCCESS", return_message = "Successfully Run.") + except Exception as error_sum: + print("Error summary: ", error_sum) + error_log = traceback.format_exc() + print("Error Details: ", str(error_log)) + json_return_output = return_object(dataList_output = [], return_code = 400, return_status = "ERROR", return_message = "Fail when processing. ", error_log = str(error_log)) + return json_return_output + +@app.route('/get-file-details', methods=['GET']) +def get_file_details(): + try: + fileID = request.headers['FileID'] + directory_path = parent_directory + str(fileID) + file_name = directory_path + '/data_input_with_guest_id.csv' + try: + df_input = pd.read_csv(file_name) + except: + df_input = pd.DataFrame() + return_total_records = {"TotalRecords": len(df_input)} + json_return_output = return_object(dataList_output = [return_total_records], return_code = 200, return_status = "SUCCESS", return_message = "Successfully Retrieve Input File.") + except Exception as error_sum: + print("Error summary: ", error_sum) + error_log = traceback.format_exc() + print("Error Details: ", str(error_log)) + json_return_output = return_object(dataList_output = [], return_code = 400, return_status = "ERROR", return_message = "Fail when processing. ", error_log = str(error_log)) + return json_return_output + +@app.route('/', methods=['GET']) +def home(): + return "

Distant Reading Archive

This site is a prototype API for distant reading of science fiction novels.

" + +if __name__ == "__main__": + app.run(host='0.0.0.0', port=5000, debug=True) diff --git a/ai/src/feature_engineering.py b/ai/src/feature_engineering.py new file mode 100644 index 0000000..fd4e421 --- /dev/null +++ b/ai/src/feature_engineering.py @@ -0,0 +1,295 @@ +import os + +from glob import glob +from tqdm import tqdm as print_progress +from datetime import datetime, timedelta, date +import dateutil + +import math +import numpy as np +import pandas as pd +import featuretools as ft +from featuretools.variable_types import Id, Numeric, Categorical, Datetime + +import ai.src.utils as utils +from ai.src.utils.utils import * +from ai.src.utils.customized_variable_types import * + + +START_DATE = pd.to_datetime('2000-01-01', format='%Y-%m-%d') +END_DATE = pd.to_datetime(datetime.now().strftime("%Y-%m-%d"), format='%Y-%m-%d') + + +def data_impute(df: pd.DataFrame) -> pd.DataFrame: + df = utils.feature_engineering.filter_out_minor_categoricals(df=df, + column_names=['Channel', 'Country']) + + # Drop missing-valued samples + df.dropna(subset=['TotalPayment', 'ArrivalDate', 'DepartureDate'], inplace=True) + + # Normalize + df.Status = df.Status.str.upper() + + return df + + +def generate_features_recency(guest_data: pd.DataFrame, END_DATE): + most_recent_date = guest_data.DepartureDate.max() + inactive_days = int((END_DATE-most_recent_date) / pd.Timedelta(days=1)) + active_months = list(guest_data.ArrivalDate.dt.month) + \ + list(guest_data.DepartureDate.dt.month) + # list(guest_data.CreatedDate.dt.month) + \ + most_active_month = max(set(active_months), key=active_months.count) + most_active_quarter = month_to_quarter(most_active_month) + least_active_month = min(set(active_months), key=active_months.count) + least_active_quarter = month_to_quarter(least_active_month) + + return inactive_days, most_active_month, least_active_month, most_active_quarter, least_active_quarter + + +def generate_features_frequency(guest_data: pd.DataFrame, customer_lifetime, + date_1st_booking, END_DATE, MAM_data): + n_orders = len(guest_data.groupby(by=['ArrivalDate'])) + average_orders = int(n_orders/customer_lifetime) if customer_lifetime>1 else n_orders + n_orders_in_MAM = len(MAM_data) + average_orders_in_MAM = int(n_orders_in_MAM/customer_lifetime) if customer_lifetime>1 else n_orders_in_MAM + + return n_orders, average_orders, average_orders_in_MAM + + +def generate_features_monetary(guest_data: pd.DataFrame, customer_lifetime, MAM_data): + total_revenue = guest_data.TotalPayment.sum() + average_revenue = total_revenue/customer_lifetime if customer_lifetime>1 else total_revenue + revenue_in_MAM = MAM_data.TotalPayment.sum() + average_revenue_in_MAM = revenue_in_MAM/int(customer_lifetime) if customer_lifetime>1 else revenue_in_MAM + + return total_revenue, average_revenue, average_revenue_in_MAM + + +def generate_features_nonRFM(guest_data: pd.DataFrame, n_orders, total_revenue): + nights_in_house = int(np.mean(guest_data.Nights)) + arrdates = guest_data.ArrivalDate.sort_values() + days_between_orders = (arrdates.values[1:] - arrdates.values[:-1]) / pd.Timedelta(days=1) + days_between_orders = np.mean(days_between_orders) if len(days_between_orders)>0 \ + else (START_DATE-END_DATE) / pd.Timedelta(days=1) + days_between_orders = int(days_between_orders) + + n_rooms = len(guest_data) + average_rooms = int(n_rooms/n_orders) + average_revenue_per_order = total_revenue / n_orders + average_revenue_per_room = total_revenue / n_rooms + + return days_between_orders, nights_in_house, n_rooms, \ + average_rooms, average_revenue_per_order, average_revenue_per_room + + +def feature_engineering_manual_for_LTV(df: pd.DataFrame) -> pd.DataFrame: + global START_DATE, END_DATE + + features = [ + # Recency features + 'InactiveDays', 'MostActiveMonth', 'LeastActiveMonth', 'MostActiveQuarter', 'LeastActiveQuarter', + + # Frequency features + 'NumberOfOrders', 'AverageOrdersPerYear', 'AverageOrdersInMostActiveMonth', + + # Monetary features + 'TotalRevenue', 'AverageRevenuePerYear', 'AverageRevenueInMostActiveMonth', + + # Non-RFM features + 'AverageDaysBetweenOrders', 'AverageNightsInHouse', 'NumberOfRooms', + 'AverageRoomsPerOrder', 'AverageRevenuePerOrder', 'AverageRevenuePerRoom', + + # Personal features + 'Lifetime', 'Country', + ] + guests_df = pd.DataFrame(columns=features) + + for guest_id, guest_data in print_progress(df.groupby(by=['GuestID'])): + + # Filter by time window + # date_1st_booking = guest_data.CreatedDate.min() + date_1st_booking = guest_data.ArrivalDate.min() + customer_lifetime = (END_DATE-date_1st_booking).days / 365.25 + + # Generate features for RECENCY + inactive_days, most_active_month, least_active_month, \ + most_active_quarter, least_active_quarter = generate_features_recency(guest_data, END_DATE) + + # Filter Most Active Month + MAM_data = guest_data.loc[ + # (guest_data.CreatedDate.dt.month == most_active_month) | + (guest_data.ArrivalDate.dt.month == most_active_month) | + (guest_data.DepartureDate.dt.month == most_active_month) + ] + + # Generate features for FREQUENCY + n_orders, average_orders, average_orders_in_MAM = generate_features_frequency( + guest_data, customer_lifetime, date_1st_booking, END_DATE, MAM_data + ) + + # Generate features for MONETARY + total_revenue, average_revenue, average_revenue_in_MAM = generate_features_monetary( + guest_data, customer_lifetime, MAM_data + ) + + # Generate features for LTV classification + days_between_orders, nights_in_house, n_rooms, \ + average_rooms, average_revenue_per_order, average_revenue_per_room = generate_features_nonRFM( + guest_data, n_orders, total_revenue + ) + + # Feed generated features into DataFrame + guests_df.loc[guest_id] = [ + inactive_days, most_active_month, least_active_month, most_active_quarter, least_active_quarter, + n_orders, average_orders, average_orders_in_MAM, + total_revenue, average_revenue, average_revenue_in_MAM, + days_between_orders, nights_in_house, n_rooms, average_rooms, average_revenue_per_order, average_revenue_per_room, + customer_lifetime, guest_data.Country.unique()[0] + ] + + guests_df['GuestID'] = list(guests_df.index) + guests_df.reset_index(drop=True, inplace=True) + + for col in guests_df.columns: + if col == 'Country': + continue + guests_df[col] = guests_df[col].astype(float) + + return guests_df + + +def feature_engineering_auto_for_LTV(df: pd.DataFrame) -> pd.DataFrame: + df_name = 'returning_guests' + EntitySet = ft.EntitySet(id=df_name) + EntitySet = EntitySet.entity_from_dataframe( + entity_id=df_name, + dataframe=df, + make_index=False, + index='GuestID', + variable_types={ + 'GuestID': Id, + 'Country': Categorical, + 'Lifetime': Age, + + 'TotalRevenue': Price, + 'AverageRevenuePerYear': Price, + 'AverageRevenueInMostActiveMonth': Price, + + 'InactiveDays': Numeric, + 'NumberOfRooms': Numeric, + 'NumberOfOrders': Numeric, + 'AverageNightsInHouse': Numeric, + 'AverageDaysBetweenOrders': Numeric, + 'AverageRevenuePerOrder': Numeric, + 'AverageRevenuePerRoom': Numeric, + 'AverageRoomsPerOrder': Numeric, + 'AverageOrdersPerYear': Numeric, + 'AverageOrdersInMostActiveMonth': Numeric, + + 'MostActiveMonth': Categorical, + 'LeastActiveMonth': Categorical, + 'MostActiveQuarter': Categorical, + 'LeastActiveQuarter': Categorical, + } + ) + + feature_matrix, feature_definitions = utils.feature_engineering.auto_feature_engineering( + entity_set=EntitySet, table_name=df_name, verbose=True + ) + + return feature_matrix + + +def feature_engineering_auto_for_1stBooking(df: pd.DataFrame) -> pd.DataFrame: + df_name = '1st_reservation' + EntitySet = ft.EntitySet(id=df_name) + EntitySet = EntitySet.entity_from_dataframe( + entity_id=df_name, + dataframe=df, + make_index=False, + index='GuestID', + variable_types={ + 'GuestID': Id, + + 'Adults': People, + 'Children': People, + 'TotalPayment': Price, + 'Nights': Numeric, + 'RoomPrice': Numeric, + 'NumberOfRooms': Numeric, + + 'Channel': Categorical, + 'Status': Categorical, + 'RoomGroupID': Categorical, + + # 'CreatedDate': Datetime, + 'ArrivalDate': Datetime, + 'DepartureDate': Datetime, + } + ) + + feature_matrix, feature_definitions = utils.feature_engineering.auto_feature_engineering( + entity_set=EntitySet, table_name=df_name, verbose=True + ) + + return feature_matrix + + +def feature_engineering_pipeline(folder_path: str, current_year: int = 0): + global END_DATE + + if current_year != 0: + input_date = str(int(current_year)+1) + "-01-01" + END_DATE = pd.to_datetime(input_date, format='%Y-%m-%d') + else: + input_date = str(int(datetime.now().year)+1) + "-01-01" + END_DATE = pd.to_datetime(input_date, format='%Y-%m-%d') + + # Load data + DF = dict() + df_names = ['1st_reservation', 'returning_guests'] + for df_name in df_names: + DF[df_name] = load_csv(folder_path+f"{df_name}.csv") + for col in DF[df_name].columns: + if 'date' in col.lower(): + DF[df_name][col] = pd.to_datetime(DF[df_name][col]) + + # Preprocess for raw features + for df_name in df_names: + # Data Imputation + DF[df_name] = data_impute(DF[df_name]) + + # Create feature `Nights` + DF[df_name]['Nights'] = (DF[df_name].DepartureDate - DF[df_name].ArrivalDate) / pd.Timedelta(days=1) + DF[df_name]['Nights'] = DF[df_name]['Nights'].astype(int) + + # Save + DF[df_name].to_csv(folder_path+f"{df_name}_fillna.csv", index=False) + + # Feature Engineering + DF['returning_guests'] = feature_engineering_manual_for_LTV(DF['returning_guests']) + DF['returning_guests'] = feature_engineering_auto_for_LTV(DF['returning_guests']) + DF['returning_guests'].to_csv(folder_path+"returning_guests_processed.csv") + + dsets = DF['1st_reservation']['is1stVisit'] + dsets.index = DF['1st_reservation'].GuestID + Xs = DF['1st_reservation'].drop(columns=['is1stVisit'], axis=1) + Xs = feature_engineering_auto_for_1stBooking(Xs) + DF['1st_reservation'] = pd.concat([Xs, dsets.to_frame()], axis=1) + DF['1st_reservation'].to_csv(folder_path+"1st_reservation_processed.csv") + + +if __name__ == "__main__": + folder_path = "C:/Users/HCG/Hash Consulting Grp Pte Ltd/AIML - Documents/General/DSKPO1 - Research and Development/3. Develop/DEVrupt Hospitality/SourceCode/output/" + feature_engineering_pipeline(folder_path) + + + + + + + + + + diff --git a/ai/src/guest_identification.py b/ai/src/guest_identification.py new file mode 100644 index 0000000..f0ed48d --- /dev/null +++ b/ai/src/guest_identification.py @@ -0,0 +1,164 @@ +import numpy as np +import pandas as pd +from pandas import DataFrame +import fuzzymatcher + +import traceback +from datetime import datetime + +def load_data_file(file_path:str, nrows:int = 10e10): + """ + Load datafile from directory and return output as Dataframe Pandas for processing + + Parameters + ---------- + file_path : str + Path to load the data file + """ + print(f"Start Loading Data File") + + df_input = pd.DataFrame() + + try: + df_input = pd.read_csv(file_path, nrows = nrows) + except Exception as error_sum: + print("___") + print("Error summary: \n", error_sum) + error_log = traceback.format_exc() + print("Error Details: \n", str(error_log)) + print("___") + + print(f"Loading File With Total {len(df_input)} Observations") + print(f"__________________________") + return df_input + +def preprocess_data_file(df_input: DataFrame): + """ + Preprocess the dataframe input for fuzzy matching algorihtm in next step. Output of the function is the processed dataframe + + Parameters + ---------- + df_input : DataFrame + Input DataFrame + """ + print(f"Start Preprocess Data File") + start_time = datetime.now() + + df_input_processed = df_input.copy() + + df_input_processed['RoomNo'] = df_input_processed['RoomNo'].fillna("") + df_input_processed['Children'] = df_input_processed['Children'].fillna(0) + + try: + df_input_processed["orderid"] = df_input_processed.index + + df_input_processed["LastName"] = df_input_processed["LastName"].fillna("") + df_input_processed["LastName"] = df_input_processed["LastName"].str.lower() + df_input_processed["LastName"] = df_input_processed["LastName"].str.strip() + + df_input_processed["FirstName"] = df_input_processed["FirstName"].fillna("") + df_input_processed["FirstName"] = df_input_processed["FirstName"].str.lower() + df_input_processed["FirstName"] = df_input_processed["FirstName"].str.strip() + + df_input_processed["tmp_name"] = df_input_processed["FirstName"] + " " + df_input_processed["LastName"] + + df_input_processed["Email"] = df_input_processed["Email"].fillna("") + df_input_processed["Email"] = df_input_processed["Email"].str.lower() + df_input_processed["Email"] = df_input_processed["Email"].str.strip() + except Exception as error_sum: + print("___") + print("Error summary: \n", error_sum) + error_log = traceback.format_exc() + print("Error Details: \n", str(error_log)) + print("___") + + end_time = datetime.now() + process_time = str(end_time - start_time) + print(f"Preprocess Data File Time Consuming: {process_time}") + print(f"__________________________") + + return df_input_processed + +def fuzzy_matching_algorithm(df_input_processed: DataFrame): + """ + Run the fuzzy matching algorithm to return dataframe with guest id + + Parameters + ---------- + df_input_processed : DataFrame + Input DataFrame + """ + cols_on_matching = ['tmp_name', 'Email'] + + print(f"Start Apply Fuzzy Matching Algorithm") + start_time = datetime.now() + + df_output = pd.DataFrame() + try: + DF = dict() + id_features = cols_on_matching + ['orderid'] + DF['guest_id_left'] = df_input_processed[id_features] + DF['guest_id_right'] = df_input_processed[id_features] + + matched_results = fuzzymatcher.fuzzy_left_join(DF['guest_id_left'], + DF['guest_id_right'], + cols_on_matching, + cols_on_matching, + left_id_col='orderid', + right_id_col='orderid') + + print(f"Guest Identification Output") + print(matched_results.sort_values(by="best_match_score", ascending=False).head(10)) + print(f"__________________________") + + df_matched = matched_results[matched_results["best_match_score"]>=0.05].copy().sort_values(by="best_match_score", ascending=True) + df_matched = df_matched[["__id_left", "__id_right"]] + + df_output = pd.merge(df_input_processed, df_matched, how="left", left_on="orderid", right_on="__id_left") + df_output['__id_right'] = df_output['__id_right'].mask(pd.isnull, df_output['orderid']) + df_output = df_output.drop(columns = ["__id_left", "tmp_name", "orderid"]) + df_output = df_output.rename(columns={"__id_right": "GuestID"}) + df_output['GuestID'] = df_output['GuestID'].astype(int).astype(str) + + except Exception as error_sum: + print("___") + print("Error summary: \n", error_sum) + error_log = traceback.format_exc() + print("Error Details: \n", str(error_log)) + print("___") + + end_time = datetime.now() + process_time = str(end_time - start_time) + print(f"Fuzzy Matching Algorithm Time Consuming: {process_time}") + print(f"__________________________") + + return df_output + +def guest_identification_process(data_input: str, folder_path: str, force_run: int=0): + try: + df_input = pd.read_json(data_input) + except: + df_input = pd.DataFrame(data_input) + print(f"\nInput DataFrame with total {len(df_input)} observations") + print(df_input.columns) + print(df_input.head(10)) + print(f"__________________________") + if len(df_input) < 1000 and force_run == 0: + return df_input + elif len(df_input) > 75000 and force_run == 0: + return df_input + elif len(df_input) < 300: + return df_input + + df_input_processed = preprocess_data_file(df_input) + df_output = fuzzy_matching_algorithm(df_input_processed) + df_output.to_csv(str(folder_path) + "data_input_with_guest_id.csv", index = False) + + return df_output + +if __name__ == "__main__": + file_path = "../sincq-dataset/SINCQ_merged_without_id.csv" + df_input = load_data_file(file_path, 10000) + df_input_processed = preprocess_data_file(df_input) + df_output = fuzzy_matching_algorithm(df_input_processed) + print(df_output.head(10)) \ No newline at end of file diff --git a/ai/src/guest_type_detection.py b/ai/src/guest_type_detection.py new file mode 100644 index 0000000..b2059ca --- /dev/null +++ b/ai/src/guest_type_detection.py @@ -0,0 +1,44 @@ +import os + +import numpy as np +import pandas as pd +from pandas import DataFrame + +def guest_type_detector(folder_path: str): + # Load data + DF = dict() + DF['guest_ltv'] = pd.read_csv(str(folder_path) + "data_input_with_guest_id.csv") + DF['guest_ltv'].drop(columns=['LastName', 'FirstName', 'Email'], inplace=True) + + # Preprocess + time_cols = [col for col in DF['guest_ltv'].columns if 'date' in col.lower()] + DF['guest_ltv'][time_cols] = DF['guest_ltv'][time_cols].apply(pd.to_datetime, errors='ignore') + + visitors_df = DF['guest_ltv'].copy() + + visits_counter = visitors_df[['GuestID', 'ArrivalDate']].groupby(by=['GuestID']).agg({'ArrivalDate': 'nunique'}) + visits_counter.reset_index(inplace=True) + visits_counter.rename(columns={'ArrivalDate': 'NumberOfArrivals'}, inplace=True) + DF['guest_ltv'] = DF['guest_ltv'].merge(visits_counter, how='outer', on='GuestID', sort=False) + + rooms_counter = visitors_df[['GuestID', 'ArrivalDate']].groupby(by=['GuestID', 'ArrivalDate']).agg({'ArrivalDate': 'count'}) + rooms_counter.rename(columns={'ArrivalDate': 'NumberOfRooms'}, inplace=True) + rooms_counter.reset_index(inplace=True) + DF['guest_ltv'] = DF['guest_ltv'].merge(rooms_counter, how='outer', on=['GuestID', 'ArrivalDate'], sort=False) + + # Build DataFrame for 1st Reservations + DF['1st_reservation'] = DF['guest_ltv'].groupby(by=['GuestID']).first() + DF['1st_reservation'].reset_index(inplace=True) + DF['1st_reservation']['is1stVisit'] = DF['1st_reservation'].NumberOfArrivals == 1 + DF['1st_reservation'].drop(columns=['NumberOfArrivals'],inplace=True) + DF['1st_reservation'].to_csv(folder_path + "1st_reservation.csv", index=False) + + # Build DataFrame for Returning Guests + DF['frequent_guests'] = DF['guest_ltv'][DF['guest_ltv'].NumberOfArrivals > 1] + DF['frequent_guests'].to_csv(folder_path + "returning_guests.csv", index=False) + +# if __name__ == "__main__": +# file_path = "C:/Users/HCG/Hash Consulting Grp Pte Ltd/AIML - Documents/General/DSKPO1 - Research and Development/3. Develop/DEVrupt Hospitality/sincq-dataset/SINCQ_final.csv" +# guest_type_detector(file_path) + + diff --git a/ai/src/modeling_for_LTV.py b/ai/src/modeling_for_LTV.py new file mode 100644 index 0000000..9cce19f --- /dev/null +++ b/ai/src/modeling_for_LTV.py @@ -0,0 +1,122 @@ +from glob import glob +from datetime import datetime +import dateutil + +import numpy as np +import pandas as pd + +from ai.src.utils.utils import * + +def LTV_model(folder_path: str, verbose: bool=False): + + # Load data + DF = pd.read_csv(folder_path+"returning_guests_processed.csv") + if 'GROUP_OF(Lifetime)' in list(DF.columns): + DF.drop(columns=['GROUP_OF(Lifetime)'], inplace=True) + DF.dropna(inplace=True) + + # Define some parameters + MIN_LIFETIME = DF.Lifetime.describe().loc['50%'] + + # Split DataFrame + df = dict() + df['long_time'] = DF[DF.Lifetime >= MIN_LIFETIME] + df['short_time'] = DF[DF.Lifetime < MIN_LIFETIME] + if len(df['long_time']['GuestID'].unique().tolist()) <= 10: + df['long_time'] = DF.copy() + # Check divergence of features between short-term and long-term customers + # diverged_features = check_features_diverged(df['long_time'], + # df['short_time'], + # exclude_columns=['TotalRevenue', 'NumberOfOrders', 'InactiveDays', 'Lifetime', 'GuestID'], + # verbose=False) + + # Model Segmentation + CLUSTEROR = dict() + K_CLUSTERS = dict() + WEIGHTS = {'Recency': 1, 'Frequency': 3, 'Monetary': 5} + for feature, cluster, ascending in zip(['InactiveDays', 'NumberOfOrders', 'TotalRevenue'], + ['Recency', 'Frequency', 'Monetary'], + [False, True, True]): + df['long_time'], best_k, model = feature_clustering(df['long_time'], feature, cluster+'_Cluster', ascending) + CLUSTEROR[cluster] = model + K_CLUSTERS[cluster] = best_k + + # print('\n\n') + # print(df['long_time'].groupby(cluster+'_Cluster')[feature].describe()) + + df['long_time']['RFM_Score'] = WEIGHTS['Recency'] / K_CLUSTERS['Recency'] * df['long_time']['Recency_Cluster'] \ + + WEIGHTS['Frequency'] / K_CLUSTERS['Frequency'] * df['long_time']['Frequency_Cluster'] \ + + WEIGHTS['Monetary'] / K_CLUSTERS['Monetary'] * df['long_time']['Monetary_Cluster'] + df['long_time']['Estimated_LTV'] = (df['long_time'].TotalRevenue / df['long_time'].NumberOfOrders) ** (1 / (1+df['long_time'].InactiveDays/365.25)) + df['long_time'], _, model = feature_clustering(df['long_time'], + feature_name='RFM_Score', + cluster_name='LTV_Cluster', + ascending=True, + reorder_by_feature='Estimated_LTV', + best_k=3) + # df['long_time'][['GuestID', 'LTV_Cluster']].to_csv(folder_path+'LTV_class_of_long_time_guests.csv', index=False) + + # Convert to probability + df['long_time']['LTV_Class'] = df['long_time']['LTV_Cluster'].map( + {1: 'CLV_Low_Prob', 2: 'CLV_Mid_Prob', 3: 'CLV_High_Prob'} + ) + df['long_time'] = pd.concat([df['long_time'], + pd.get_dummies(df['long_time'].LTV_Class)], axis=1) + df['long_time'][ + ['GuestID', 'LTV_Class', 'CLV_Low_Prob', 'CLV_Mid_Prob', 'CLV_High_Prob'] + ].to_csv(folder_path+'LTV_class_of_long_time_guests.csv', index=False) + + # Model Classification + df['long_time'].drop(columns=['Estimated_LTV', 'RFM_Score', + 'InactiveDays', 'NumberOfOrders', 'TotalRevenue', + 'Recency_Cluster', 'Frequency_Cluster', 'Monetary_Cluster', + 'LTV_Class', 'CLV_Low_Prob', 'CLV_Mid_Prob', 'CLV_High_Prob'], + errors='ignore', + inplace=True) + X, Y, target_weights = preprocess_for_classifier(df['long_time'], + target_name='LTV_Cluster', + id_cols=['GuestID', 'Lifetime']) + classifier = XGBClassifier(max_depth=5, + learning_rate=0.1, + objective='multi:softprob', + n_jobs=-1) + classifier.fit(X['train'], Y['train'], + sample_weight=target_weights.values, + eval_metric=["mlogloss"], + eval_set=[(X['train'], Y['train']), (X['test'], Y['test'])], + early_stopping_rounds=7, + verbose=verbose) + if verbose: + visualize_results(classifier, X, Y) + + X['infer'] = df['short_time'].copy() + unused_features = [] + for col in X['infer'].columns: + if col not in list(X['train'].columns): + unused_features.append(col) + + X['infer'].drop(columns=unused_features, inplace=True) + df['short_time'][['CLV_Low_Prob', 'CLV_Mid_Prob', 'CLV_High_Prob']] = classifier.predict_proba(X['infer']) + df['short_time'].sort_values(by=['GuestID'], inplace=True) + df['short_time']['LTV_Cluster'] = df['short_time'][['CLV_Low_Prob', 'CLV_Mid_Prob', 'CLV_High_Prob']].apply(np.argmax, axis=1) + df['short_time']['LTV_Cluster'] += 1 + df['short_time']['LTV_Class'] = df['short_time']['LTV_Cluster'].map( + {1: 'CLV_Low_Prob', 2: 'CLV_Mid_Prob', 3: 'CLV_High_Prob'} + ) + df['short_time'][ + ['GuestID', 'LTV_Class', 'CLV_Low_Prob', 'CLV_Mid_Prob', 'CLV_High_Prob'] + ].to_csv(folder_path+'LTV_class_of_short_time_guests.csv', index=False) + + +if __name__ == "__main__": + folder_path = "C:/Users/HCG/Hash Consulting Grp Pte Ltd/AIML - Documents/General/DSKPO1 - Research and Development/3. Develop/DEVrupt Hospitality/SourceCode/output/" + LTV_model(folder_path, True) + + + + + + + + + diff --git a/ai/src/potential_guest_segmentation.py b/ai/src/potential_guest_segmentation.py new file mode 100644 index 0000000..281546d --- /dev/null +++ b/ai/src/potential_guest_segmentation.py @@ -0,0 +1,244 @@ +import numpy as np +import pandas as pd +from pandas import DataFrame +from sklearn.cluster import DBSCAN +from sklearn import preprocessing + +import traceback +from datetime import datetime + + +def LTV_class_probability(value_series): + value_list = value_series.values.tolist() + class_1_prob = value_list.count(1) + class_2_prob = value_list.count(2)*2 + class_3_prob = value_list.count(3)*5 + total_prob = class_1_prob + class_2_prob + class_3_prob + 1e-10 + output_dict = { + "Low_Class": round(class_1_prob/total_prob,2), + "Mid_Class": round(class_2_prob/total_prob,2), + "High_Class": round(class_3_prob/total_prob,2) + } + return output_dict + + +def generated_final_cluster(low_class_prob, mid_class_prob, high_class_prob): + max_prob = max(low_class_prob, mid_class_prob, high_class_prob) + if high_class_prob >= max_prob: + return 3 + elif mid_class_prob >= max_prob: + return 2 + elif low_class_prob>= max_prob: + return 1 + else: + return -1 + + +def guest_type_cols(LTV_Class, Final_Cluster): + if LTV_Class >= 1: + return "Returning Guest" + elif Final_Cluster == -1: + return "Ignore 1st-Time Guest" + else: + return "1st-Time Guest" + + +def construct_ground_truth_file(folder_path: str): + """ + Load datafile from directory and contruct the ground truth Dataframe Pandas for processing + """ + print(f"Start Construct Ground Truth File") + + df_long_time_guests = DataFrame() + df_short_time_guests = DataFrame() + df_ground_truth = DataFrame() + try: + df_long_time_guests = pd.read_csv(folder_path + "LTV_class_of_long_time_guests.csv") + df_short_time_guests = pd.read_csv(folder_path + "LTV_class_of_short_time_guests.csv") + + df_returning_guest = pd.concat([df_long_time_guests, df_short_time_guests]).reset_index() + df_returning_guest["LTV_Class"].replace({"CLV_Low_Prob": "1", "CLV_Mid_Prob": "2", "CLV_High_Prob": "3"}, inplace=True) + + df_ground_truth = df_returning_guest.drop(columns = ["index", "CLV_Low_Prob", "CLV_Mid_Prob", "CLV_High_Prob"]) + + df_ground_truth["GuestID"] = df_ground_truth["GuestID"].astype(int) + df_ground_truth["LTV_Class"] = df_ground_truth["LTV_Class"].astype(int) + except Exception as error_sum: + print("___") + print("Error summary: \n", error_sum) + error_log = traceback.format_exc() + print("Error Details: \n", str(error_log)) + print("___") + + print(f"Construct Ground-Truth File With Total {len(df_ground_truth)} observations. ({len(df_long_time_guests)} observations from segmentations and {len(df_short_time_guests)} observations from classification.)") + if len(df_ground_truth) > 0: + print(f"\t* LTV Low-Class Guest: {len(df_ground_truth[df_ground_truth['LTV_Class']==1])} observations") + print(f"\t* LTV Mid-Class Guest: {len(df_ground_truth[df_ground_truth['LTV_Class']==2])} observations") + print(f"\t* LTV High-Class Guest: {len(df_ground_truth[df_ground_truth['LTV_Class']==3])} observations") + print(f"__________________________") + + return df_ground_truth, df_returning_guest + + +def construct_1st_time_reservation_file(folder_path: str): + """ + Load datafile from directory and contruct the 1st-time reservation Dataframe Pandas for processing + """ + + print(f"Start Construct 1st-time Reservation File") + + df_1st_reservation_returning_guest = DataFrame() + df_1st_reservation_1st_time_guest = DataFrame() + df_1st_reservation_combine = DataFrame() + + try: + df_1st_reservation_combine = pd.read_csv(folder_path + "1st_reservation_processed.csv") + df_1st_reservation_returning_guest = df_1st_reservation_combine[df_1st_reservation_combine["is1stVisit"]==False] + df_1st_reservation_1st_time_guest = df_1st_reservation_combine[df_1st_reservation_combine["is1stVisit"]==True] + + # df_1st_reservation_combine = pd.concat([df_1st_reservation_returning_guest, df_1st_reservation_1st_time_guest]).reset_index().drop(columns = ['index']) + except Exception as error_sum: + print("___") + print("Error summary: \n", error_sum) + error_log = traceback.format_exc() + print("Error Details: \n", str(error_log)) + print("___") + + print(f"Construct 1st-time Reservation File With Total {len(df_1st_reservation_combine)} Observations.\n\ + * Returning Guest: {len(df_1st_reservation_returning_guest)} observations\n\ + * 1st-time Guest: {len(df_1st_reservation_1st_time_guest)} observations") + print(f"__________________________") + + return df_1st_reservation_combine + + +def DBSCAN_clustering(df_input: DataFrame): + """ + Run the DBSCAN clustering algorithm to return dataframe with cluster group + + Parameters + ---------- + Input + df_input : DataFrame + + Output: + DataFrame with cluster group by guest ID + """ + print(f"Start Apply DBSCAN Clustering Algorithm") + start_time = datetime.now() + try: + X = np.array(df_input.drop(['GuestID', 'LTV_Class', 'is1stVisit'], 1).astype(float)) + X = preprocessing.StandardScaler().fit_transform(X) + + clf = DBSCAN(min_samples=2, eps=100, algorithm='kd_tree', n_jobs=-1) + clf.fit(X) + + labels = clf.labels_ + + df_input['cluster_group'] = np.nan + for i in range(len(X)): + df_input['cluster_group'].iloc[i] = labels[i] + + except Exception as error_sum: + print("___") + print("Error summary: \n", error_sum) + error_log = traceback.format_exc() + print("Error Details: \n", str(error_log)) + print("___") + + end_time = datetime.now() + process_time = str(end_time - start_time) + print(f"DBSCAN Clustering Algorithm Time Consuming: {process_time} with total {len(df_input)} observations") + print(f"__________________________") + + return df_input + + +def probability_applied(df_input: DataFrame): + """ + Run the Probability clustering algorithm to return dataframe with cluster group + + Parameters + ---------- + Input + df_input : DataFrame + + Output: DataFrame with cluster group by guest ID + """ + print(f"Start Apply Probability Algorithm") + + df_output = DataFrame() + + try: + df_simplify_input = df_input[['GuestID', 'LTV_Class', 'cluster_group']].copy() + + df_filter = df_input[df_input['cluster_group']!=-1][['GuestID', 'LTV_Class', 'cluster_group']].sort_values(by=['cluster_group']) + df_filter['LTV_Class'] = df_filter['LTV_Class'].fillna(-1) + df_filter = df_filter[df_filter['LTV_Class']!=-1] + + df_groupby_cluster_group = df_filter.groupby('cluster_group')['LTV_Class'].apply(LTV_class_probability) + df_groupby_cluster_group = df_groupby_cluster_group.reset_index() + + df_groupby_cluster_group = df_groupby_cluster_group.rename(columns={'LTV_Class':'Final_Cluster', 'level_1': 'Returning_Cluster'}) + df_groupby_cluster_group = df_groupby_cluster_group.pivot(index='cluster_group', columns='Returning_Cluster', values='Final_Cluster').reset_index() + + df_output = df_simplify_input.merge(df_groupby_cluster_group, left_on="cluster_group", right_on="cluster_group", how="left") + df_output["Final_Cluster"] = df_output.apply(lambda df_output: generated_final_cluster(df_output["Low_Class"], df_output["Mid_Class"], df_output["High_Class"]), axis=1) + df_output["Guest_Type"] = df_output.apply(lambda df_output: guest_type_cols(df_output["LTV_Class"], df_output["Final_Cluster"]), axis=1) + + df_output['LTV_Class'] = df_output['LTV_Class'].fillna(df_output['Final_Cluster']) + df_output = df_output.drop(columns = ['cluster_group', 'Final_Cluster']) + except Exception as error_sum: + print("___") + print("Error summary: \n", error_sum) + error_log = traceback.format_exc() + print("Error Details: \n", str(error_log)) + print("___") + + print(f"Probability Algorithm Completed") + print(f"__________________________") + + if len(df_output) > 0: + Counter = df_output['Guest_Type'].value_counts() + for guest_type in ['Returning Guest', '1st-Time Guest', 'Ignore 1st-Time Guest']: + if guest_type not in Counter.index: + Counter.loc[guest_type] = 0 + print(f"Data File Output: {len(df_output)} observations.\n\ + \t* Returning Guest: {Counter.loc['Returning Guest']} observations.\n\ + \t* 1st-Time Guest: {Counter.loc['1st-Time Guest'] + Counter.loc['Ignore 1st-Time Guest']} observations:\n\ + \t\t + Potential Guest: {Counter.loc['1st-Time Guest']} observations\n\ + \t\t + Ignore Guest: {Counter.loc['Ignore 1st-Time Guest']} observations") + + return df_output + +def Potential_model(folder_path: str): + df_ground_truth, df_returning_guest = construct_ground_truth_file(folder_path) + df_1st_reservation_combine = construct_1st_time_reservation_file(folder_path) + + df_combine = df_1st_reservation_combine.merge(df_ground_truth, left_on="GuestID", right_on="GuestID", how="left") + + df_combine = DBSCAN_clustering(df_combine.copy()) + df_combine.to_csv(folder_path + "DBSCAN_output.csv", index=False) + + df_potential_model = probability_applied(df_combine.copy()) + df_potential_model.to_csv(folder_path + "potential_model_output.csv", index=False) + + df_potential_model = df_potential_model.rename(columns={'High_Class':'CLV_High_Prob', 'Low_Class': 'CLV_Low_Prob', 'Mid_Class': 'CLV_Mid_Prob'}) + df_potential_model = df_potential_model[df_potential_model['Guest_Type'] != 'Returning Guest'] + + df_returning_guest['Guest_Type'] = "Returning Guest" + + df_all_guest_merge = pd.concat([df_returning_guest.drop(columns=["index"]), df_potential_model]).reset_index().drop(columns=["index"]) + df_input_guest_id = pd.read_csv(str(folder_path) + "data_input_with_guest_id.csv") + + df_final_output = df_input_guest_id.merge(df_all_guest_merge, left_on="GuestID", right_on="GuestID", how="left") + + df_final_output = df_final_output[df_final_output["Guest_Type"] != "Ignore 1st-Time Guest"] + df_final_output = df_final_output[["LastName","FirstName","Email","GuestID","LTV_Class","CLV_Low_Prob","CLV_Mid_Prob","CLV_High_Prob","Guest_Type"]].drop_duplicates(subset=["LastName","FirstName","Email"]) + try: + print(f"Return The DataFrame Output") + print(df_final_output.head(10)) + print(f"__________________________") + except: + pass + df_final_output[["LastName","FirstName","Email","GuestID","LTV_Class","CLV_Low_Prob","CLV_Mid_Prob","CLV_High_Prob","Guest_Type"]].to_json(folder_path + "final_output.json", orient='records') \ No newline at end of file diff --git a/ai/src/utils/__init__.py b/ai/src/utils/__init__.py new file mode 100644 index 0000000..16b69ea --- /dev/null +++ b/ai/src/utils/__init__.py @@ -0,0 +1,13 @@ +import os +from glob import glob + + +cwd = os.path.dirname(__file__) + +modules = glob(os.path.join(cwd, '*.py')) +__all__ = [ + os.path.basename(f)[:-3] for f in modules \ + if os.path.isfile(f) and not f.endswith('__init__.py') +] + +from ai.src.utils import * \ No newline at end of file diff --git a/ai/src/utils/customized_primitives.py b/ai/src/utils/customized_primitives.py new file mode 100644 index 0000000..a17ce58 --- /dev/null +++ b/ai/src/utils/customized_primitives.py @@ -0,0 +1,143 @@ +import numpy as np +import pandas as pd + +import featuretools as ft +from featuretools.primitives.base import * +from featuretools.utils.gen_utils import Library +from featuretools.primitives.standard.binary_transform import ( + AddNumeric, AddNumericScalar, + SubtractNumeric, SubtractNumericScalar, ScalarSubtractNumericFeature, + MultiplyNumeric, MultiplyNumericScalar, + DivideNumeric, DivideNumericScalar, DivideByFeature, + ModuloNumeric, ModuloNumericScalar, ModuloByFeature, + GreaterThan, GreaterThanScalar, GreaterThanEqualTo, GreaterThanEqualToScalar, + LessThan, LessThanScalar, LessThanEqualTo, LessThanEqualToScalar, + Equal, EqualScalar, NotEqual, NotEqualScalar +) +from featuretools.variable_types.variable import * +from ai.src.utils.customized_variable_types import * + + +print("Importing customized primitives ...") + + +class GroupOf(TransformPrimitive): + + name = 'group_of' + input_types = [Age] + return_type = Ordinal + + def __init__(self): + self.description_template = "group of {}" + + def get_function(self): + def assign_group(vals: pd.Series): + groups = vals.copy() + groups.loc[vals <= 18] = 0 # children & teenager + groups.loc[vals > 18] = 1 # the young adult + groups.loc[vals > 35] = 2 # the adult + groups.loc[vals > 55] = 3 # the retired + groups.loc[vals > 70] = 4 # the elderly + return groups + return assign_group + + +class TimeDelta(TransformPrimitive): + + name = "scalar_subtract_numeric_feature" + input_types = [Datetime, Datetime] + return_type = Numeric + compatibility = [Library.PANDAS, Library.DASK, Library.KOALAS] + + def __init__(self): + self.description_template = "the result of {} minus {}" + + def get_function(self): + def time_delta_between(x_vals, y_vals): + return (x_vals - y_vals) / pd.Timedelta(days=1) + return time_delta_between + + def generate_name(self, base_feature_names): + return "%s - %s" % (base_feature_names[0], base_feature_names[1]) + + +class Quarter(TransformPrimitive): + """ + Determines the quarter value of a datetime. + """ + name = "quarter" + input_types = [Datetime] + return_type = Ordinal + compatibility = [Library.PANDAS, Library.DASK, Library.KOALAS] + description_template = "the quarter of {}" + + def get_function(self): + def quarterize(vals): + m_vals = vals.dt.month + q_vals = m_vals.copy() + q_vals.loc[m_vals <= 3] = 1 # 1st quarter of the year + q_vals.loc[m_vals > 3] = 2 + q_vals.loc[m_vals > 6] = 3 + q_vals.loc[m_vals > 9] = 4 + return q_vals + return quarterize + + +# Define functions to duplicate +numeric_functions = [ + AddNumeric(), + SubtractNumeric(), + # MultiplyNumeric(), + # DivideNumeric(), DivideByFeature(value=1), + # ModuloNumeric(), ModuloByFeature(value=1), + GreaterThan(), GreaterThanScalar(value=0), + LessThan(), LessThanScalar(value=0), + Equal(), EqualScalar(value=0), +] + + +# Duplicate Numeric functions for customized Variables +def duplicate_functions(functions: list or tuple): + duplicated_functions = [] + duplicated_variables = [Age, Price, Weight, Height, Width, Length, Depth] + for dup_func in functions: + for var_type in duplicated_variables: + # print(f"\nDuplicating function {dup_func.name} for variable {var_type._name}") + + # Define nearly-duplicated primitive + dup_func.name = dup_func.name.replace('numeric', var_type._name.lower()) + input_types = dup_func.input_types + if isinstance(input_types[0], (list, tuple)): + n_inputs = len(input_types[0]) + dup_func.compatibility = [Library.PANDAS] + dup_func.input_types = [[var_type] * n_inputs] + else: + n_inputs = len(input_types) + dup_func.input_types = [var_type] * n_inputs + + # Append to list + duplicated_functions.append(dup_func) + return duplicated_functions + + +# Define default primitives +default_aggregation_primitives = [ + "sum", "max", "min", "mode", + "mean", "std", "skew", + "count", "percent_true", "num_unique", +] + +default_transformation_primitives = [ + # Datetime + "month", Quarter, "weekday", "is_weekend", TimeDelta, + + # LatLong + "haversine", + + # NaturalLanguage + # "num_words", "num_characters", + + # Age + # GroupOf +] + numeric_functions + duplicate_functions(numeric_functions) + diff --git a/ai/src/utils/customized_variable_types.py b/ai/src/utils/customized_variable_types.py new file mode 100644 index 0000000..4389c9e --- /dev/null +++ b/ai/src/utils/customized_variable_types.py @@ -0,0 +1,76 @@ +import numpy as np +import pandas as pd + +from featuretools.variable_types import Variable + + +print("Importing customized variables ...") + + +class Age(Variable): + _default_pandas_dtype = int + _name = 'Age' + + +class Price(Variable): + _default_pandas_dtype = float + _name = 'Price' + + +class Weight(Variable): + _default_pandas_dtype = float + _name = 'Weight' + + +class Height(Variable): + _default_pandas_dtype = float + _name = 'Height' + + +class Length(Variable): + _default_pandas_dtype = float + _name = 'Length' + + +class Width(Variable): + _default_pandas_dtype = float + _name = 'Width' + + +class Depth(Variable): + _default_pandas_dtype = float + _name = 'Depth' + + +class Size(Variable): + _default_pandas_dtype = str + _name = 'Size' + + +class MeasurementUnit(Variable): + _default_pandas_dtype = str + _name = 'MeasurementUnit' + + +class Currency(Variable): + _default_pandas_dtype = str + _name = 'Currency' + + +class Gender(Variable): + _default_pandas_dtype = str + _name = 'Gender' + + +class People(Variable): + _default_pandas_dtype = int + _name = 'People' + + +CUSTOM_VARIABLES = [ + Gender, Currency, MeasurementUnit, Size, People, + Depth, Width, Length, Height, Weight, Price, Age, +] + + + diff --git a/ai/src/utils/data_cleaning.py b/ai/src/utils/data_cleaning.py new file mode 100644 index 0000000..929f1d0 --- /dev/null +++ b/ai/src/utils/data_cleaning.py @@ -0,0 +1,50 @@ +import os +import sys + +import numpy as np +import pandas as pd + +import featuretools as ft + + +def clean_data(df: pd.DataFrame, + processes: list=[('remove_null', 0.69), + ('remove_single_val', False), + ('remove_various_val', 0.89), + ('remove_correlated', 0.89), + ('remove_low_info',)]) -> pd.DataFrame: + features_original = df.columns.values.tolist() + # print('Original Features:\n', features_original) + for process in processes: + print('-'*69) + features_before = set(df.columns.values.tolist()) + if process[0] == 'remove_null': + df = ft.selection.remove_highly_null_features(df, pct_null_threshold=process[1]) + elif process[0] == 'remove_single_val': + df = ft.selection.remove_single_value_features(df, count_nan_as_value=process[1]) + elif process[0] == 'remove_correlated': + df = ft.selection.remove_highly_correlated_features(df, pct_corr_threshold=process[1]) + elif process[0] == 'remove_low_info': + df = ft.selection.remove_low_information_features(df) + elif process[0] == 'remove_various_val': + df = remove_highly_various_features(df, threshold=process[1]) + else: + continue + features_after = set(df.columns.values.tolist()) + features_removed = list(features_after.difference(features_before)) + print(f'\n\nAfter {process[0]}, there are {len(features_removed)} features being removed:') + print(features_removed) + features_final = df.columns.values.tolist() + features_removed = set(features_original).difference(set(features_final)) + return df, list(features_removed) + + +def remove_highly_various_features(df: pd.DataFrame, threshold: float=0.89) -> pd.DataFrame: + for col in df.columns: + variousness = df[col].nunique() / df[col].notnull().sum() + if variousness > threshold: + df.drop(columns=[col], inplace=True) + return df + + + diff --git a/ai/src/utils/data_imputation.py b/ai/src/utils/data_imputation.py new file mode 100644 index 0000000..b474428 --- /dev/null +++ b/ai/src/utils/data_imputation.py @@ -0,0 +1,108 @@ +import os + +import numpy as np +import pandas as pd + +from itertools import combinations + +from sklearn.impute import SimpleImputer as sk_imputer + +class DataImputer: + + def __init__(df: pd.DataFrame, + feature_types: dict, + imputation_methods: dict={ + 'categorical': ['constant', 'most_frequent', 'random_prob', 'knn', 'mice', 'em', 'deep_learning'], + 'numerical': ['mode', 'mean', 'median', 'random_prob', 'knn', 'mice', 'em'], + 'datetime': ['current_date', '1st_date'] + }): + self.df = df + self.feature_types = { + feature: feature_type.lower() for feature, feature_type in feature_types.items() + } + self.imputation_methods = imputation_methods + self.imputed_features = dict() + + def fill_na(self): + for feature_name in self.df.columns: + print(f'\nImputing {feature_name} ...') + if feature_name not in self.feature_types.keys(): + print(f'\tType of {feature_name} is not declared!') + continue + elif self.feature_types[feature_name] not in self.imputation_methods.keys(): + print(f'\tType {self.feature_types[feature_name]} is not supported!') + continue + feature = self.df[feature_name] + + def fill_na_by_constant(self, feature, const_type: str): + """ + Constant value could be 1 among [0, mean, median, mode] + + Pros: + . easy and fast + + Cons: + . not factor the correlations between features + . give poor results on encoded categorical features (with MEAN, MEDIAN or MODE) + . not very accurate + . not account for the uncertainty in the imputations + """ + pass + + def fill_na_by_most_frequent(self, feature): + """ + Pros: + . works well with categorical features + + Cons: + . not factor the correlations between features + . can introduce bias in the data + """ + pass + + def fill_na_by_random_prob(self, feature): + pass + + def fill_na_by_kNN(self, feature): + """ + This function creates a basic MEAN impute, then uses the resulting list to construct a KDTree. + Then, it uses the resulting KDTree to compute nearest neighbours (NN). + After it finds the k-NNs, it takes the weighted average of them. + + Pros: + . much more accurate than the mean, median or most frequent imputation methods + + Cons: + . computationally expensive + . quite sensitive to outliers + """ + pass + + def fill_na_by_MICE(self, feature): + """ + Multivariate Imputation by Chained Equations + """ + pass + + def fill_na_by_EM(self, feature): + pass + + def fill_na_by_deep_learning(self, feature): + """ + Pros: + . quite accurate compared to other methods + . works very well with categorical and non-numerical features + + Cons: + . single-column imputation + . quite slow with large datasets + """ + pass + + def fill_na_by_date(self, feature, date_type: str): + pass + + + + + diff --git a/ai/src/utils/data_visualization.py b/ai/src/utils/data_visualization.py new file mode 100644 index 0000000..332b87e --- /dev/null +++ b/ai/src/utils/data_visualization.py @@ -0,0 +1,55 @@ +import os + +import numpy as np +import pandas as pd + +def describe_missing_values(df: pd.DataFrame): + miss_val = df.isnull().sum() + miss_val_percent = 100 * df.isnull().sum() / len(df) + miss_val_table = pd.concat([miss_val, miss_val_percent], axis=1) + miss_val_table_ren_columns = miss_val_table.rename( + columns = { + 0: 'Missing Values', + 1: '% of Total Values', + } + ) + miss_val_table_ren_columns = miss_val_table_ren_columns[ + miss_val_table_ren_columns.iloc[:,1] != 0 + ].sort_values('% of Total Values', ascending=False).round(1) + + print(f"Your selected dataframe has {df.shape[1]} columns,") + print(f"\t{miss_val_table_ren_columns.shape[0]} columns that have missing values.") + + return miss_val_table_ren_columns + + +def visualize_distribution_of_missing_values(df: pd.DataFrame): + df_nan_check = df.isna().sum().sort_values() + df_nan_check = df_nan_check.to_dict() + df_not_nan = [] + + nan_cols = 0 + + for key, value in df_nan_check.items(): + df_nan_check[key] = int(value/len(df)*100) + if df_nan_check[key] >= 80: + nan_cols += 1 + else: + df_not_nan.append(key) + + # Visualize + plt.figure(figsize=(9, 6)) + plt.suptitle('Distribution of Empty Values', fontsize=19) + plt.bar(df_nan_check.keys(), df_nan_check.values()) + plt.xticks(rotation=69) + plt.show() + + +def describe_stats(df: pd.DataFrame, only_numerical: bool=False): + if only_numerical: + print(df.describe()) + else: + print(df.describe(include='all')) + + + diff --git a/ai/src/utils/feature_engineering.py b/ai/src/utils/feature_engineering.py new file mode 100644 index 0000000..1b74178 --- /dev/null +++ b/ai/src/utils/feature_engineering.py @@ -0,0 +1,209 @@ +import os +import sys + +import numpy as np +import pandas as pd + +import featuretools as ft +from featuretools.variable_types import * +from featuretools.utils.gen_utils import make_tqdm_iterator + +from ai.src.utils.customized_variable_types import CUSTOM_VARIABLES +from ai.src.utils.customized_primitives import default_aggregation_primitives, default_transformation_primitives + + +def auto_feature_engineering(entity_set: ft.EntitySet, + table_name: str, + max_depth: int=2, + max_features: int=-1, + seed_features: list=None, + encoding_categorical: bool=True, + verbose: bool=False) -> pd.DataFrame: + + # Deep Feature Synthesis + # (Categorical features are not processed, on default) + feature_matrix, feature_definitions = ft.dfs( + entityset=entity_set, + target_entity=table_name, + agg_primitives=default_aggregation_primitives, + trans_primitives=default_transformation_primitives, + max_depth=max_depth, + max_features=max_features, + verbose=verbose, + return_variable_types=[Numeric, Discrete, Ordinal, Categorical, Boolean]+CUSTOM_VARIABLES + ) + + # 1-hot encoding for Categorical features, including generated ones + if encoding_categorical: + features_before = set(feature_matrix.columns.values.tolist()) + feature_matrix, feature_definitions = encode_categorical_features(feature_matrix, feature_definitions, include_unknown=False, verbose=verbose) + if verbose: + features_after = set(feature_matrix.columns.values.tolist()) + features_encoded = list(features_before.difference(features_after)) + print("\n\nFeatures being encoded:\n\t", "\n\t".join(features_encoded)) + + return feature_matrix.astype(float), feature_definitions + + +def filter_out_minor_categoricals(df: pd.DataFrame, + column_names: list or tuple, + top_k: int=None, + min_percent: float=0.01, + verbose: bool=False): + for col in column_names: + if verbose: + print(f"\n\nFiltering {col} ...") + if col not in df.columns: + if verbose: + print(f"\tCannot find {col} in your dataframe!") + continue + + # Check top values + df[col] = df[col].astype(str).str.lower() + all_values = df[col].value_counts(normalize=True) + if top_k: + top_values = list(all_values.index)[:top_k] + else: + top_values = list(all_values.loc[all_values>=min_percent].index) + + if verbose: + print(f"\tAll values") + print(all_values) + print(f"\tTop values:", top_values) + + # Filter-out minority + def filter_minority(val): + if not val or val not in top_values: + val = 'others' + return val + + df[col] = df[col].apply(filter_minority) + if verbose: + print(f"\tFilter values") + print(df[col].value_counts(normalize=True)) + + return df + + +DEFAULT_TOP_N = 10 + + +def encode_categorical_features(feature_matrix: pd.DataFrame, features, + top_n=DEFAULT_TOP_N, include_unknown=True, + to_encode=None, inplace=False, + drop_first=False, verbose=False): + """ + Encode categorical features + + Args: + feature_matrix (pd.DataFrame): Dataframe of features. + features (list[PrimitiveBase]): Feature definitions in feature_matrix. + top_n (int or dict[string -> int]): Number of top values to include. + If dict[string -> int] is used, key is feature name and value is + the number of top values to include for that feature. + If a feature's name is not in dictionary, a default value of 10 is used. + include_unknown (pd.DataFrame): Add feature encoding an unknown class. + defaults to True + to_encode (list[str]): List of feature names to encode. + features not in this list are unencoded in the output matrix + defaults to encode all necessary features. + inplace (bool): Encode feature_matrix in place. Defaults to False. + drop_first (bool): Whether to get k-1 dummies out of k categorical + levels by removing the first level. + defaults to False + verbose (str): Print progress info. + + Returns: + (pd.Dataframe, list) : encoded feature_matrix, encoded features + """ + if not isinstance(feature_matrix, pd.DataFrame): + raise TypeError("feature_matrix must be a Pandas DataFrame") + + X = feature_matrix if inplace else feature_matrix.copy() + + old_feature_names = set() + for feature in features: + for fname in feature.get_feature_names(): + assert fname in X.columns, (f"Feature {fname} not found in feature matrix") + old_feature_names.add(fname) + + pass_through = [col for col in X.columns if col not in old_feature_names] + + iterator = make_tqdm_iterator(iterable=features, + total=len(features), + desc="Encoding pass 1", + unit="feature") if verbose else features + new_feature_list = [] + new_columns = [] + encoded_columns = set() + + for f in iterator: + # TODO: features with multiple columns are not encoded by this method, + # which can cause an "encoded" matrix with non-numeric vlaues + is_categorical = issubclass(f.variable_type, Categorical) + if (f.number_output_features > 1 or not is_categorical): + if f.number_output_features > 1: + print(f"[WARNING] Feature {f} has multiple columns and will not be encoded. This may result in a matrix with non-numeric values.") + new_feature_list.append(f) + new_columns.extend(f.get_feature_names()) + continue + + if to_encode is not None and f.get_name() not in to_encode: + new_feature_list.append(f) + new_columns.extend(f.get_feature_names()) + continue + + val_counts = X[f.get_name()].value_counts().to_frame() + index_name = val_counts.index.name + if index_name is None: + if 'index' in val_counts.columns: + index_name = 'level_0' + else: + index_name = 'index' + val_counts.reset_index(inplace=True) + val_counts = val_counts.sort_values([f.get_name(), index_name], + ascending=False) + val_counts.set_index(index_name, inplace=True) + select_n = top_n + if isinstance(top_n, dict): + select_n = top_n.get(f.get_name(), DEFAULT_TOP_N) + if drop_first: + select_n = min(len(val_counts), top_n) + select_n = max(select_n - 1, 1) + unique = val_counts.head(select_n).index.tolist() + for label in unique: + add = f == label + add_name = add.get_name() + new_feature_list.append(add) + new_columns.append(add_name) + encoded_columns.add(add_name) + X[add_name] = (X[f.get_name()] == label) + + if include_unknown: + unknown = f.isin(unique).NOT().rename(f.get_name() + " is unknown") + unknown_name = unknown.get_name() + new_feature_list.append(unknown) + new_columns.append(unknown_name) + encoded_columns.add(unknown_name) + X[unknown_name] = (~X[f.get_name()].isin(unique)) + + X.drop(f.get_name(), axis=1, inplace=True) + + new_columns.extend(pass_through) + new_X = X[new_columns] + iterator = new_X.columns + if verbose: + iterator = make_tqdm_iterator(iterable=new_X.columns, + total=len(new_X.columns), + desc="Encoding pass 2", + unit="feature") + for c in iterator: + if c in encoded_columns: + try: + new_X[c] = pd.to_numeric(new_X[c], errors='raise') + except (TypeError, ValueError): + pass + + return new_X, new_feature_list + + diff --git a/ai/src/utils/feature_selection.py b/ai/src/utils/feature_selection.py new file mode 100644 index 0000000..161068d --- /dev/null +++ b/ai/src/utils/feature_selection.py @@ -0,0 +1,423 @@ +import time +import warnings +import random + +from tqdm import tqdm as print_progress +from joblib import Parallel, delayed +from collections import Counter + +import numpy as np +import pandas as pd + +from sklearn.base import BaseEstimator +import sklearn.linear_model as models +from sklearn.preprocessing import StandardScaler +from sklearn.utils.validation import check_X_y, check_array, check_is_fitted + + +def add_noisy_features(X: np.array, noise_ratio: float=0.2): + """ + Add noisy features to DataFrame, + in order to check whether the generated features are good + """ + # Verify data type + if isinstance(X, pd.DataFrame): + X = X.values + if not isinstance(X, np.ndarray): + raise ValueError(f"X must be either `np.array` or `pd.DataFrame` while being {type(X)}") + + n_samples, n_features = X.shape + if n_samples > 100 and n_features > 10: + # shuffle DataFrame + X_shuffled = np.random.permutation(X.flatten()).reshape(X.shape) + random_noise = StandardScaler().fit_transform(X_shuffled) + X = np.hstack([X, random_noise]) + + # generate normally-distributed noise + n_noise = max(3, int(noise_ratio*n_features)) + noisy_features = np.random.randn(n_samples, n_noise) + + X_noised = np.hstack([X, noisy_features]) + noisy_feature_names = [f'noise_{n}' for n in range(X_noised.shape[1])] + + return X_noised, noisy_feature_names + + +def noise_filtering(X: np.array, y: np.array, + feature_names=None, + problem_type: str="regression", + n_best: int=-1, + n_priori_noise: int=-1): + """ + Trains a prediction model with additional noisy features and + selects only those of the original features + that have higher coefficient than any of the noisy features. + + Inputs: + - X: n x d numpy.array with d features + - y: target vector corresponding to the data points in X + - feature_names: list of column names for the features in X + - problem_type: str, either "regression" or "classification" (default: "regression") + + Returns: + - good_cols: list of filtered column names + """ + # Verify data + n_samples, n_features = X.shape + if not feature_names: + feature_names = list(range(n_features)) + if len(feature_names) != n_features: + raise ValueError(f"Number of columns provided is different from number of features ({len(feature_names)} != {n_features})") + + # Load model + if problem_type == "regression": + model = models.LassoLarsCV(cv=5, eps=1e-8) + elif problem_type == "classification": + model = models.LogisticRegressionCV(cv=5, penalty="l1", solver="saga", class_weight="balanced") + else: + print(f"WARNING: Unknown problem_type ({problem_type}) - not performing noise filtering.") + return feature_names + + # Filter noisy features + X_noisy, noisy_features = add_noisy_features(X) + n_noise = len(noisy_features) + with warnings.catch_warnings(): + warnings.simplefilter(action='ignore') + try: + model.fit(X_noisy, y) + except ValueError: + idx = np.random.permutation(n_samples) + model.fit(X_noisy[idx], y[idx]) + + coefs = np.abs(model.coef_) + if problem_type == 'classification': + # model.coefs_ is n_classes x n_features, but we need only n_features + coefs = np.max(coefs, axis=0) + feature_coefs, noise_coefs = coefs[:n_features], coefs[n_features:] + weights = dict(zip(feature_names, feature_coefs)) + + if n_best > 0: + threshold = sorted(coefs, reverse=True)[min(n_best, n_features)] + elif n_priori_noise > 0: + threshold = sorted(coefs, reverse=True)[min(n_priori_noise+n_noise, n_features)] + else: + # only keep features more important than known noisy features + threshold = np.max(noise_coefs) + return [fn for fn in feature_names if weights[fn]>threshold and 'noise' not in fn] + + +def feature_selection(X: pd.DataFrame, y: pd.Series, + problem_type: str="regression", + relevance_ratio: float=0.5, + verbose=False) -> list: + """ + Feature Selection for NUMERIC variables + + Inputs: + - X: pandas.DataFrame with n data points and p features; + to avoid overfitting, only provide data belonging to the n training data points. + - y: target pandas Series corresponding to the data points in X + - relevance_ratio: float between 0-1, + - problem_type: str, either "regression" or "classification" (default: "regression") + - verbose: verbosity level (boolean; default: False) + + Returns: + - feature_names: list of column names for X to train a prediction model + """ + features = dict() + features['original'] = X.columns.values.tolist() + n_features = len(X.columns) + n_samples = len(X) + + # initial selection of too few but (hopefully) relevant features + t1 = time.time() + features['relevant'] = noise_filtering(X=X.values, y=y.values, + feature_names=X.columns.values.tolist(), + problem_type=problem_type, + n_best=int(relevance_ratio*n_features)) + t2 = time.time() + features['irrelevant'] = list( + set(features['original']).difference(set(features['relevant'])) + ) + if verbose: + print("\n\nFeatures relevant:\n\t", '\n\t'.join(features['relevant'])) + print("\n\nFeatures irrelevant:\n\t", '\n\t'.join(features['irrelevant'])) + print(f"\n\nPerform initial selection in {int(t2-t1)} seconds") + + # Noise filtering for relevant features + t1 = time.time() + features['relevant_denoised'] = noise_filtering(X=X[features['relevant']].values, y=y.values, + feature_names=features['relevant'], + problem_type=problem_type) + t2 = time.time() + if verbose: + features_removed = set(features['relevant']).difference(set(features['relevant_denoised'])) + print("\n\nRelevant features removed:\n\t", '\n\t'.join(list(features_removed))) + print(f"\n\nPerform relevant selection in {int(t2-t1)} seconds") + + # Noise filtering for irrelevant features + features['irrelevant_denoised'] = [] + if len(features['irrelevant']) > 0: + random.shuffle(features['irrelevant']) + X_noisy, noisy_names = add_noisy_features(X, noise_ratio=0.2) + n_relevances, n_irrelevances = len(features['relevant']), len(features['irrelevant']) + + try: + n_batches = int(n_irrelevances / max(10, 0.5*n_samples-n_relevances)) + batch_size = int(n_irrelevances/n_batches) + except ZeroDivisionError: + print(f"\n\nAll irrelevant features are noise") + n_batches, batch_size = 0, 0 + + t1 = time.time() + for bi in print_progress(range(n_batches)): + batch_features = features['irrelevant'][bi*batch_size:(bi+1)*batch_size] + X_batch = np.hstack([X[batch_features].values, X_noisy]) + features_relevant = noise_filtering(X=X_batch, y=y.values, + feature_names=batch_features+noisy_names, + problem_type=problem_type, + n_priori_noise=len(noisy_names)) + features['irrelevant_denoised'].extend(features_relevant) + t2 = time.time() + + # Remove duplicates + features['irrelevant_denoised'] = list(set(features['irrelevant_denoised'])) + + if verbose: + features_removed = set(features['irrelevant']).difference(set(features['irrelevant_denoised'])) + print("\n\nIrrelevant features removed:\n\t", '\n\t'.join(list(features_removed))) + print(f"\n\nPerform irrelevant selection in {int(t2-t1)} seconds") + + # Noise filtering for the combination of features + t1 = time.time() + combined_features = features['relevant_denoised'] + features['irrelevant_denoised'] + denoised_features = noise_filtering(X=X[combined_features].values, y=y.values, + feature_names=combined_features, + problem_type=problem_type) + t2 = time.time() + if verbose: + features_removed = set(combined_features).difference(set(denoised_features)) + print("\n\nCombined features removed:\n\t", '\n\t'.join(list(features_removed))) + print(f"\n\nPerform combined selection in {int(t2-t1)} seconds") + return denoised_features + + +def feature_screening(X: pd.DataFrame, y: pd.Series, + n_runs: int=5, + retain_features: list=[], + corr_threshold: float=0.9, + problem_type: str="regression", + n_workers: int=1, + verbose=False): + """ + Select predictive NUMERIC features given the data and targets. + + Inputs: + - X: pandas.DataFrame with n data points and p features; + to avoid overfitting, only provide data belonging to the n training data points. + - y: target pandas Series corresponding to the data points in X + - n_runs: number of times to perform feature selection + with a random fraction of data points (int; default: 5) + - corr_threshold: threshold to deliminate correlated features + - retain_features: list of features that must be retained + - problem_type: str, either "regression" or "classification" (default: "regression") + - n_workers: the number of workers in parallel + - verbose: verbosity level (boolean; default: False) + + Returns: + - feature_names: list of promising column names to train model + """ + # Verify data + n_samples, n_features = X.shape + if len(y) != n_samples: + raise ValueError(f"Numbers of samples in X (={n_samples}) and y (={len(y)}) are mismatched !!!!") + if verbose: + if n_runs > n_samples: + print(f"[WARNING] There are fewer data samples than number of runs !!!") + + # Verify condition + if n_runs < 1 or problem_type not in ['regression', 'classification']: + print(f"WARNING: n_runs (={n_runs}) must be larger than 1 AND problem_type (={problem_type}) must be either `regression` or `classification`") + return X.columns.values.tolist() + + # check that retaining columns exist + # - the columns might be transformed to str ! + retain_features = [f for f in retain_features if f in X.columns and not str(f) in X.columns] \ + + [str(f) for f in retain_features if str(f) in X.columns] + important_features = X.columns.values.tolist() + + # Scale features to uniform distribution + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + + # Initialize scaler for common use + scaler = StandardScaler(with_mean=True, with_std=True) + + # Scale features X + X_scaled = pd.DataFrame(columns=X.columns, dtype=np.float32) + for col in X.columns.values.tolist(): + X_scaled[col] = scaler.fit_transform(X[col].values.reshape(-1, 1)).ravel() + + # Scale target y + y_scaled = y if problem_type=='classification' \ + else scaler.fit_transform(y.values.reshape(-1, 1)).ravel() + + # select good features in k runs in parallel by cross-validation + # (i.e., randomly subsample data points) + def run_feature_screening(r): + if verbose: + print(f"\n\n\nRun {r+1} / {n_runs} feature screening ...") + np.random.seed(r) + batch_size = max(10, int(0.85*n_samples)) + indices = np.random.permutation(X_scaled.index)[:batch_size] + return feature_selection(X=X_scaled.iloc[indices], + y=y_scaled[indices], + problem_type=problem_type, + verbose=verbose) + + if n_workers == 1 or n_runs == 1: + selected_features = [] + for r in range(n_runs): + selected_features.extend(run_feature_screening(r)) + else: + # only use parallelization code if needed + def merge_lists(L): + return [item for sublist in L for item in sublist] + + selected_features = merge_lists( + Parallel(n_jobs=n_workers, verbose=verbose)( + delayed(function=run_feature_screening)(r) for r in range(n_runs) + ) + ) + + if len(selected_features) > 0: + feature_counter = Counter(selected_features) + + # sort by frequency, but down-weight long formulaes to break tie (if any) + selected_features = sorted(feature_counter, + key=lambda f: feature_counter[f] - 1e-11*len(str(f)))[::-1] + if verbose: + print(f"There are {len(selected_features)} features after feature selection") + + # Add retained features + if len(retain_features) > 0: + selected_features.extend(retain_features) + selected_features = list(set(selected_features)) + important_features = selected_features + else: + important_features = selected_features[:1] + + # correlation filtering + k = len(important_features) + if len(selected_features) > k: + correlations = X_scaled[selected_features].corr() + for f_i, f in enumerate(selected_features[k:], k): + # only take features that are uncorrelated with the rest + if np.max(np.abs(correlations[f].ravel()[:f_i])) < corr_threshold: + important_features.append(f) + if verbose: + print(f"There are {len(selected_features)} features after correlation filtering") + + # perform noise filtering on de-correlated features + important_features = noise_filtering(X=X_scaled[important_features].values, y=y_scaled, + feature_names=important_features, + problem_type=problem_type) + if verbose: + print(f"There are {len(important_features)} features after noise filtering") + + # Add retained features + important_features.extend(retain_features) + important_features = list(set(important_features)) + if verbose: + print(f"There are {len(important_features)} features after feature screening {n_runs} times") + return important_features + + +class FeatureSelector(BaseEstimator): + + def __init__(self, problem_type: int="regression", + n_runs: int=5, + corr_threshold: float=0.9, + retain_features: list=[], + n_workers: int=1, + verbose: bool=True): + """ + Multi-step cross-validated feature selection + + Inputs: + - problem_type: str, either "regression" or "classification" (default: "regression") + - n_runs: number of times to perform feature selection with a random fraction of data points (int; default: 5) + - corr_threshold: threshold to deliminate correlated features + - retain_features: list of features that must be retained + - n_jobs: how many jobs to run when selecting the features in parallel (int; default: 1) + - n_workers: the number of workers in parallel + - verbose: verbosity level (boolean; default: False) + + Attributes: + - important_features_: list of important features (to select via pandas.DataFrame columns) + - original_features_: list of original features of X when calling fit + - return_df_: whether to return a pandas.DataFrame; if False, return a numpy.array + """ + self.retain_features = retain_features + self.corr_threshold = corr_threshold + self.problem_type = problem_type + self.n_workers = n_workers + self.verbose = verbose + self.n_runs = n_runs + + def fit(self, X: pd.DataFrame or np.array, + y: pd.Series or np.array): + # Verify data types + if isinstance(X, pd.DataFrame): + self.return_df_ = True + self.original_features_ = list(X.columns) + else: + self.return_df_ = False + self.original_features_ = [f"x_{i}" for i in range(X.shape[1])] + X = pd.DataFrame(X, columns=self.original_features_) + if not isinstance(y, pd.Series): + y = pd.Series(y, name='target') + + # Perform multi-step feature selection + self.important_features_ = feature_screening( + X=X, y=y, + n_runs=self.n_runs, + verbose=self.verbose, + n_workers=self.n_workers, + problem_type=self.problem_type, + corr_threshold=self.corr_threshold, + retain_features=self.retain_features + ) + return self + + def transform(self, X: pd.DataFrame or np.array): + # Validate attributes + check_is_fitted(self, ["important_features_"]) + if len(self.important_features_) == 0: + if self.verbose: + print("WARNING: No important features found; returning data unchanged.") + return X + + # Validate data types + if isinstance(X, pd.DataFrame): + features = list(X.columns) + else: + features = [f"x_{i}" for i in range(X.shape[1])] + X = check_array(X, force_all_finite="allow-nan") + if sorted(self.original_features_) != sorted(features): + raise ValueError("Features are different from calling `fit`") + + # Get selected features only + X = pd.DataFrame(X, columns=features) + X_selected = X[self.important_features_] + if self.return_df_: + return X_selected + return X_selected.values + + def fit_transform(self, X: pd.DataFrame or np.array, + y: pd.Series or np.array): + self.fit(X, y) + X_transformed = self.transform(X) + return X_transformed + + diff --git a/ai/src/utils/model_training.py b/ai/src/utils/model_training.py new file mode 100644 index 0000000..e2c01e4 --- /dev/null +++ b/ai/src/utils/model_training.py @@ -0,0 +1,54 @@ +import os +import sys + +import numpy as np +import pandas as pd + +from sklearn.model_selection import train_test_split + +fail_to_use_autoML = False +try: + import evalml + from evalml import AutoMLSearch +except ModuleNotFoundError: + fail_to_use_autoML = True + + +def auto_ML_search(df: pd.DataFrame, + target_col: str, + problem_type: str='binary', + additional_objectives=['auc', 'f1', 'precision']): + if fail_to_use_autoML: + raise ModuleNotFoundError(f"No module named `evalml`") + + # Split dataset + X = df.drop(columns=[target_col], inplace=False) + y = df[target_col] + X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.69, random_state=69) + + # Run auto ML + auto_ml = AutoMLSearch(X_train=X_train, y_train=y_train, + problem_type=problem_type, + # objective=fraud_objective, + additional_objectives=additional_objectives, + max_batches=1, + optimize_thresholds=True) + + auto_ml.search(data_checks='disabled') + model_rankings = auto_ml.rankings + best_pipeline = auto_ml.best_pipeline + print(auto_ml.describe_pipeline(auto_ml.rankings.iloc[0]["id"])) + + # Train + best_pipeline.fit(X_train, y_train) + feature_importance = best_pipeline.feature_importance + best_pipeline.graph_feature_importance() + + # Test + results = best_pipeline.predict(X_test)._series + + return model_rankings, best_pipeline, feature_importance, results + + + + diff --git a/ai/src/utils/utils.py b/ai/src/utils/utils.py new file mode 100644 index 0000000..4053513 --- /dev/null +++ b/ai/src/utils/utils.py @@ -0,0 +1,315 @@ +import os +from copy import deepcopy + +from datetime import datetime +from dateutil.parser import parse as parse_to_datetime +import dateutil + +import numpy as np +import pandas as pd + +np.seterr(divide='ignore') + +from sklearn.utils import class_weight +from sklearn.cluster import KMeans, MeanShift, DBSCAN +from sklearn.multiclass import OneVsRestClassifier +from sklearn.preprocessing import MultiLabelBinarizer, StandardScaler +from sklearn.metrics import ( + classification_report, confusion_matrix, + silhouette_score, homogeneity_score, completeness_score, v_measure_score, + auc, plot_roc_curve +) +from sklearn.model_selection import ( + KFold, StratifiedKFold, cross_val_score, + GridSearchCV, + train_test_split +) + +from xgboost import XGBClassifier + +LUCKY_NUMBER = 6969 + +classifier = XGBClassifier(objective='multi:softprob', n_jobs=11) + +parameters = { + 'max_depth': range (2, 7, 1), + 'n_estimators': range(60, 90, 10), + 'learning_rate': [0.01, 0.05, 0.1] +} + +HP_searcher = GridSearchCV( + estimator=classifier, + param_grid=parameters, + scoring='f1_macro', + cv=10, + verbose=True +) + + +def to_datetime(text: str): + try: + dt_format = str(parse_to_datetime(text)) + dt_object = datetime.strptime(dt_format,'%Y-%m-%d %H:%M:%S') + except Exception: + return None + return dt_object + + +def month_to_quarter(month: int) -> int: + if 1 <= month <= 3: + return 1 + elif 4 <= month <= 6: + return 2 + elif 7 <= month <= 9: + return 3 + elif 10 <= month <= 12: + return 4 + else: + raise ValueError(f'input must be between 1 and 12') + + +def load_csv(filepath: str) -> pd.DataFrame: + if not os.path.isfile(filepath): + raise FileNotFoundError(f"Cannot find {filepath}") + return pd.read_csv(filepath) + + +def find_best_k_clustering(x: np.array, + max_clusters: int=10, + max_iterations: int=1000, + n_samples: int=169, + lucky_number: int=LUCKY_NUMBER, + verbose: bool=False): + scores = {} + for k in range(2, max_clusters-1): + if k < 2: + continue + try: + kmeans = KMeans(n_clusters=k, max_iter=max_iterations, random_state=lucky_number).fit(x) + except: + continue + # scores[k] = kmeans.inertia_ + try: + scores[k] = silhouette_score(x, kmeans.labels_, metric='euclidean', sample_size=n_samples) + except ValueError: + continue + + best_k = max(scores, key=scores.get) + if verbose: + print(f"Best k is {best_k}") + return best_k + + +def reorder_cluster(cluster_field_name: str, + target_field_name: str, + df: pd.DataFrame, + ascending: bool=True): + new_cluster_field_name = 'new_' + cluster_field_name + df_new = df.groupby(cluster_field_name)[target_field_name].mean().reset_index() + df_new = df_new.sort_values(by=target_field_name, ascending=ascending).reset_index(drop=True) + df_new['index'] = df_new.index + df_final = pd.merge(df, df_new[[cluster_field_name, 'index']], on=cluster_field_name) + df_final = df_final.drop([cluster_field_name], axis=1) + df_final = df_final.rename(columns={"index": cluster_field_name}) + df_final[cluster_field_name] = df_final[cluster_field_name] + 1 + return df_final + + +def cdf(x): + """ + Cumulative Density Function (with epsilon) + """ + x = np.sort(x) + u, c = np.unique(x, return_counts=True) + n = len(x) + y = (np.cumsum(c)-0.5) / n + + def interpolate_(x_): + y_interp = np.interp(x_, u, y, left=0.0, right=1.0) + return y_interp + + return interpolate_ + + +def cumulative_kl(x, y, fraction: float=0.5): + """ + Cumulative Method to calculate Kullback–Leibler divergence + """ + dx = np.diff(np.sort(np.unique(x))) + dy = np.diff(np.sort(np.unique(y))) + ex = np.min(dx) + ey = np.min(dy) + e = np.min([ex, ey]) * fraction + n = len(x) + P = cdf(x) + Q = cdf(y) + + divergence = (1./n) * np.sum(np.log((P(x)-P(x-e)) / (Q(x)-Q(x-e)+1e-11))) + return np.abs(divergence) + + +def preprocess_for_classifier(df: pd.DataFrame, target_name: str, + id_cols: list=[], train_size: float=0.69): + # Split to train and validation + dset, X, Y = dict(), dict(), dict() + + # If the minimum number of groups for any class less than 2 + try: + dset['train'], dset['test'] = train_test_split(df, train_size=train_size, stratify=df[target_name]) + for ds_name, ds in dset.items(): + Y[ds_name] = ds[target_name] + X[ds_name] = ds.copy() + X[ds_name].drop(columns=id_cols+[target_name], errors='ignore', inplace=True) + except: + X['train'] = df.copy() + X['train'].drop(columns=id_cols+[target_name], errors='ignore', inplace=True) + X['test'] = X['train'].copy() + + Y['train'] = df[target_name] + Y['test'] = Y['train'].copy() + + # Compute class weights for target + target_weights = Y['train'] + target_classes = target_weights.unique() + class_weights = list( + class_weight.compute_class_weight('balanced', target_classes, target_weights) + ) + target_weights = target_weights.map({clss_i+1: clss_w for clss_i, clss_w in enumerate(class_weights)}) + + return X, Y, target_weights + + +def visualize_results(classifier, X, Y): + results = classifier.evals_result() + + epochs = len(results['validation_0']['mlogloss']) + x_axis = range(0, epochs) + + viz_df = pd.DataFrame(classifier.feature_importances_, + index=X['train'].columns, + columns=['feature_importance']) + viz_df.sort_values(by=['feature_importance'], inplace=True) + # viz_df[viz_df.feature_importance>0.011].plot(kind='barh', alpha=0.75) + + print('\n\nAccuracy of XGB classifier on training: {:.2f}' + .format(classifier.score(X['train'], Y['train']))) + y_pred = classifier.predict(X['train']) + print(classification_report(Y['train'], y_pred)) + + print('\n\nAccuracy of XGB classifier on testing: {:.2f}' + .format(classifier.score(X['test'], Y['test']))) + y_pred = classifier.predict(X['test']) + print(classification_report(Y['test'], y_pred)) + + +def filter_opposite_features(df: pd.DataFrame, verbose: bool=False): + features_before = list(df.columns) + features_after = deepcopy(features_before) + feature_id = 0 + while feature_id < len(features_after): + feature_1 = features_after[feature_id] + if verbose: + print(f"Checking {feature_1}") + feature_id += 1 + + is_separable = False + for op in [' = ', ' - ', ' + ', ' > ', ' < ']: + if op in feature_1: + is_separable = True + break + + if not is_separable: + continue + + obj_a, obj_b = feature_1.split(op) + feature_2 = obj_b + op + obj_a + if feature_2 in features_after: + if verbose: + print(f"Remove {feature_2} because of oppositing {feature_1}") + features_after.remove(feature_2) + + features_removed = list(set(features_before).difference(set(features_after))) + if verbose: + print(f"\n\n\nFeatures removed:\n\t", features_removed) + return features_removed + + +def check_features_diverged(DF_1: pd.DataFrame, + DF_2: pd.DataFrame, + exclude_columns: list=[], + include_nan_divergence: bool=False, + threshold: float=0.69, + mode: str='min', + verbose: bool=False) -> list: + len_1, len_2 = len(DF_1), len(DF_2) + if len_1 > len_2: + DF_1 = DF_1.sample(len_2) + elif len_2 > len_1: + DF_2 = DF_2.sample(len_1) + + diverged_features = dict() + common_features = set.intersection(set(list(DF_1.columns)), set(list(DF_2.columns))) + common_features = [f for f in list(common_features) if f not in exclude_columns] + + for col in common_features: + div_xy = cumulative_kl(DF_1[col], DF_2[col]) + div_yx = cumulative_kl(DF_2[col], DF_1[col]) + if mode == 'max': + div = max(div_xy, div_yx) + elif mode == 'min': + div = min(div_xy, div_yx) + else: + div = (div_xy + div_yx) / 2 + + if verbose: + print(f'\n{col}\n\t{div_xy}\n\t{div_yx}\n\t{div}\n') + + if div > threshold: + diverged_features[col] = div + if include_nan_divergence and np.isnan(div): + diverged_features[col] = div + + diverged_features_df = pd.DataFrame.from_dict(diverged_features, orient='index', columns=['KL_divergence']) + diverged_features_df.sort_values(by=['KL_divergence'], inplace=True) + + if verbose: + print(diverged_features_df) + + return list(diverged_features_df.index) + + +def feature_clustering(df: pd.DataFrame, + feature_name: str, + cluster_name: str=None, + ascending: bool=True, + reorder_by_feature: str=None, + best_k: int=None) -> pd.DataFrame: + # Preprocess + cluster_df = df[ + ['GuestID', feature_name] if not reorder_by_feature else \ + ['GuestID', feature_name, reorder_by_feature] + ] + x = cluster_df[feature_name].values.reshape(-1, 1) + if not cluster_name: + cluster_name = feature_name + '_Cluster' + + # Segmentation + if not best_k: + best_k = find_best_k_clustering(x) + model = KMeans(n_clusters=best_k, random_state=LUCKY_NUMBER) + model.fit(x) + + # Predict + cluster_df[cluster_name] = model.predict(x) + + # Sorting + if not reorder_by_feature: + reorder_by_feature = feature_name + cluster_df = reorder_cluster(cluster_name, reorder_by_feature, cluster_df, ascending) + df = df.merge(cluster_df[['GuestID', cluster_name]], how='outer', on='GuestID') + + return df, best_k, model + + + + diff --git a/ai/src/utils/variable_type_detection.py b/ai/src/utils/variable_type_detection.py new file mode 100644 index 0000000..57c0c3b --- /dev/null +++ b/ai/src/utils/variable_type_detection.py @@ -0,0 +1,80 @@ +import numpy as np +import pandas as pd + +import re +import math +from dateutil.parser import parse as parse_to_datetime + + +pattern_digit = re.compile('\d') + + +def check_contain_digit(text: str) -> bool: + try: + contain_digit = bool(pattern_digit.search(text)) + except Exception: + contain_digit = None + return contain_digit + + +def check_datetime(text: str) -> bool: + try: + dt_format = parse_to_datetime(text) + return True + except Exception: + return None + + +def check_categorical(uniqueness, n_values, + uniqueness_threshold: float=0.11, + n_values_at_least: int=27, + value_if_not_categorical: str='Unknown') -> str: + return 'Categorical' if uniqueness < uniqueness_threshold \ + and n_values < n_values_at_least \ + else value_if_not_categorical + + +def auto_detect_variable_types(df: pd.DataFrame) -> pd.DataFrame: + dtypes_df = df.dtypes.to_frame().rename(columns={0: 'pd_type'}) + dtypes_df['var_type'] = None + + for var_name, var_type in dtypes_df.pd_type.items(): + n_values = df[var_name].nunique(dropna=True) + uniqueness = n_values / len(df) + if n_values <= 2: + var_type = 'Boolean' if n_values==2 else 'Empty' + elif var_type == 'int64': + var_type = check_categorical(uniqueness, n_values, value_if_not_categorical='Numeric') + elif var_type == 'float64': + var_type = 'Numeric' + elif var_type == 'object': + checker_digit = df[var_name].apply(check_contain_digit) + if checker_digit.all(skipna=True): + checker_datetime = df[var_name].apply(check_datetime) + if checker_datetime.all(skipna=True) and checker_datetime.sum(skipna=True)/len(df) > 0.89: + var_type = 'Datetime' + else: + var_type = check_categorical(uniqueness, n_values) + else: + var_type = check_categorical(uniqueness, n_values, value_if_not_categorical='Text') + + dtypes_df.loc[var_name, 'var_type'] = var_type + del var_type, n_values, uniqueness + + return dtypes_df + + +def test_auto_dtype_detection(): + data = pd.read_csv('datasets/sii_fraud/sii_fraud.csv') + data_dtypes = auto_detect_variable_types(data) + print(data_dtypes) + + +if __name__ == "__main__": + test_auto_dtype_detection() + + + + + + diff --git a/ai/storage/test-file-id-input/1st_reservation.csv b/ai/storage/test-file-id-input/1st_reservation.csv new file mode 100644 index 0000000..33e17a9 --- /dev/null +++ b/ai/storage/test-file-id-input/1st_reservation.csv @@ -0,0 +1,203 @@ +GuestID,CreatedDate,Status,RoomGroupID,ArrivalDate,DepartureDate,RoomPrice,Nights,Channel,TotalPayment,Country,Adults,Children,RoomNo,NumberOfRooms,is1stVisit +0,2019-08-05 13:55:31,Confirmed,BER-DBL,2019-08-06 15:00:00,2019-08-08 08:00:00,221.02,2,Direct,241.0,DE,1,0.0,4.009,1,True +1,2019-08-05 13:55:23,NoShow,BER-DBL,2019-08-06 15:00:00,2019-08-10 08:00:00,386.0,4,Direct,386.0,DE,2,0.0,1.010,1,True +2,2019-08-05 13:55:30,Canceled,LND-DBL,2019-08-06 09:00:00,2019-08-07 08:00:00,120.02,1,Direct,150.0,GB,2,0.0,G.015,1,True +3,2019-08-05 13:55:38,CheckedOut,MUC-FAMILY,2019-08-06 08:00:00,2019-08-12 07:00:00,701.0,6,Direct,726.0,JP,1,0.0,3.001,1,True +4,2019-08-05 13:55:47,Confirmed,LND-DBL,2019-08-06 09:00:00,2019-08-10 08:00:00,520.08,4,Direct,640.0,GB,2,0.0,1.008,1,True +5,2019-08-05 13:55:39,Confirmed,LND-SGL,2019-08-06 09:00:00,2019-08-12 08:00:00,506.0,6,Direct,506.0,GB,1,0.0,2.008,1,True +6,2019-08-05 13:55:38,Confirmed,MUC-DBL,2019-08-06 08:00:00,2019-08-07 07:00:00,123.01,1,Direct,138.0,DE,1,0.0,1.006,1,True +7,2019-08-05 13:56:07,Canceled,LND-DBL,2019-08-06 09:00:00,2019-08-13 08:00:00,913.14,7,Direct,1123.0,GB,2,0.0,2.011,1,True +8,2019-08-05 13:55:48,Confirmed,LND-DBL,2019-08-06 09:00:00,2019-08-07 08:00:00,120.02,1,Direct,150.0,GB,2,0.0,1.014,1,True +9,2019-08-05 13:56:13,Confirmed,LND-SGL,2019-08-06 09:00:00,2019-08-08 08:00:00,163.0,2,Direct,163.0,GB,1,0.0,2.012,1,True +10,2019-08-05 13:56:17,Confirmed,BER-DBL,2019-08-06 15:00:00,2019-08-07 08:00:00,93.0,1,Direct,93.0,DE,2,0.0,1.014,1,True +11,2019-08-05 13:56:15,Confirmed,MUC-SGL,2019-08-06 08:00:00,2019-08-07 07:00:00,78.0,1,Direct,78.0,DE,1,0.0,2.001,1,True +12,2019-08-05 13:56:16,Confirmed,LND-DBL,2019-08-07 09:00:00,2019-08-08 08:00:00,118.0,1,Direct,118.0,GB,1,0.0,G.015,1,True +13,2019-08-05 13:55:07,NoShow,LND-SGL,2019-08-07 09:00:00,2019-08-08 08:00:00,88.0,1,Direct,88.0,GB,1,0.0,G.007,1,True +14,2019-08-05 13:55:16,Confirmed,BER-DBL,2019-08-07 15:00:00,2019-08-09 08:00:00,231.04,2,Direct,271.0,DE,2,0.0,2.004,1,True +15,2019-08-05 13:55:33,Confirmed,LND-FAMILY,2019-08-07 09:00:00,2019-08-12 08:00:00,681.0,5,Direct,681.0,GB,2,0.0,3.002,1,True +16,2019-08-05 13:56:12,Confirmed,LND-DBL,2019-08-07 09:00:00,2019-08-08 08:00:00,118.0,1,Direct,118.0,GB,1,0.0,2.006,1,True +17,2019-08-05 13:55:59,Confirmed,LND-SGL,2019-08-07 09:00:00,2019-08-09 08:00:00,172.0,2,Direct,172.0,GB,1,0.0,G.003,1,True +18,2019-08-05 13:55:08,Confirmed,MUC-DBL,2019-08-07 08:00:00,2019-08-08 07:00:00,134.02,1,Direct,164.0,DE,2,0.0,1.015,1,True +19,2019-08-05 13:55:42,Confirmed,MUC-SGL,2019-08-07 08:00:00,2019-08-08 07:00:00,89.0,1,Direct,89.0,DE,1,0.0,G.008,1,True +20,2019-08-05 13:55:56,Confirmed,MUC-SGL,2019-08-07 08:00:00,2019-08-08 07:00:00,89.0,1,Direct,89.0,DE,1,0.0,2.012,1,True +21,2019-08-05 13:55:37,Confirmed,MUC-DBL,2019-08-07 08:00:00,2019-08-08 07:00:00,134.02,1,Direct,164.0,DE,2,0.0,2.011,1,True +22,2019-08-05 13:56:10,Confirmed,BER-DBL,2019-08-08 15:00:00,2019-08-09 08:00:00,93.0,1,Direct,93.0,DE,1,0.0,4.020,1,True +23,2019-08-05 13:56:14,Confirmed,MUC-DBL,2019-08-08 08:00:00,2019-08-10 07:00:00,262.0,2,Direct,262.0,DE,2,0.0,2.014,1,True +24,2019-08-05 13:55:36,Confirmed,BER-DBL,2019-08-08 15:00:00,2019-08-09 08:00:00,93.0,1,Direct,93.0,DE,1,0.0,3.019,1,True +25,2019-08-05 13:56:18,Confirmed,BER-SGL,2019-08-08 15:00:00,2019-08-09 08:00:00,63.0,1,Direct,63.0,DE,1,0.0,4.002,1,True +26,2019-08-05 13:55:09,Confirmed,LND-FAMILY,2019-08-08 09:00:00,2019-08-10 08:00:00,237.0,2,Direct,237.0,GB,1,0.0,3.001,1,True +27,2019-08-05 13:55:09,Confirmed,BER-SGL,2019-08-08 15:00:00,2019-08-09 08:00:00,63.0,1,Direct,63.0,DE,1,0.0,G.002,1,True +28,2019-08-05 13:55:27,Confirmed,BER-DBL,2019-08-08 15:00:00,2019-08-10 08:00:00,185.0,2,Direct,185.0,DE,2,0.0,2.005,1,True +29,2019-08-05 13:55:21,Confirmed,LND-DBL,2019-08-08 09:00:00,2019-08-09 08:00:00,129.02,1,Direct,159.0,GB,2,0.0,G.009,1,True +30,2019-08-05 13:55:53,Confirmed,BER-SGL,2019-08-08 15:00:00,2019-08-09 08:00:00,63.0,1,Direct,63.0,DE,1,0.0,G.018,1,True +31,2019-08-05 13:55:32,Confirmed,LND-DBL,2019-08-09 09:00:00,2019-08-12 08:00:00,394.0,3,Direct,394.0,GB,2,0.0,1.012,1,True +32,2019-08-05 13:55:14,Confirmed,BER-SGL,2019-08-09 15:00:00,2019-08-14 08:00:00,271.0,5,Direct,271.0,DE,1,0.0,G.017,1,True +33,2019-08-05 13:55:49,Confirmed,LND-DBL,2019-08-09 09:00:00,2019-08-10 08:00:00,138.0,1,Direct,138.0,GB,2,0.0,1.002,1,True +34,2019-08-05 13:55:40,Confirmed,LND-SGL,2019-08-09 09:00:00,2019-08-16 08:00:00,740.0,7,Direct,740.0,GB,1,0.0,G.010,1,True +35,2019-08-05 13:56:10,Confirmed,BER-DBL,2019-08-10 15:00:00,2019-08-12 08:00:00,188.0,2,Direct,188.0,DE,2,0.0,4.014,1,True +36,2019-08-05 13:56:06,Confirmed,MUC-DBL,2019-08-10 08:00:00,2019-08-11 07:00:00,142.0,1,Direct,142.0,DE,1,0.0,G.009,1,True +37,2019-08-05 13:55:22,Confirmed,MUC-FAMILY,2019-08-10 08:00:00,2019-08-14 07:00:00,464.0,4,Direct,489.0,DE,1,0.0,3.002,1,True +38,2019-08-05 13:55:34,Confirmed,LND-DBL,2019-08-11 09:00:00,2019-08-12 08:00:00,120.0,1,Direct,120.0,GB,1,0.0,G.004,1,True +39,2019-08-05 13:55:17,Confirmed,MUC-DBL,2019-08-11 08:00:00,2019-08-13 07:00:00,257.02,2,Direct,287.0,DE,1,0.0,1.005,1,True +40,2019-08-05 13:56:01,Confirmed,MUC-SGL,2019-08-11 08:00:00,2019-08-13 07:00:00,167.0,2,Direct,167.0,DE,1,0.0,2.013,1,True +41,2019-08-05 13:55:55,Confirmed,LND-FAMILY,2019-08-11 09:00:00,2019-08-12 08:00:00,120.0,1,Direct,120.0,GB,2,0.0,3.001,1,True +42,2019-08-05 13:55:24,Confirmed,MUC-DBL,2019-08-11 08:00:00,2019-08-18 07:00:00,901.0,7,Direct,901.0,DE,1,0.0,1.014,1,True +43,2019-08-05 13:56:03,Confirmed,LND-DBL,2019-08-12 09:00:00,2019-08-14 08:00:00,306.0,2,Direct,306.0,GB,2,0.0,1.015,1,True +44,2019-08-05 13:55:51,Confirmed,MUC-SGL,2019-08-12 08:00:00,2019-08-13 07:00:00,97.0,1,Direct,97.0,DE,1,0.0,1.011,1,True +45,2019-08-05 13:56:04,Confirmed,LND-FAMILY,2019-08-13 09:00:00,2019-08-15 08:00:00,254.0,2,Direct,254.0,GB,1,0.0,3.001,1,True +46,2019-08-05 13:55:11,Confirmed,MUC-FAMILY,2019-08-13 08:00:00,2019-08-19 07:00:00,766.0,6,Direct,791.0,DE,1,0.0,3.001,1,True +47,2019-08-05 13:55:54,Confirmed,LND-SGL,2019-08-13 09:00:00,2019-08-15 08:00:00,154.0,2,Direct,154.0,GB,1,0.0,G.001,1,True +48,2019-08-05 13:55:52,Confirmed,LND-DBL,2019-08-13 09:00:00,2019-08-15 08:00:00,244.0,2,Direct,244.0,GB,2,0.0,1.006,1,True +49,2019-08-05 13:56:07,Confirmed,MUC-DBL,2019-08-13 08:00:00,2019-08-15 07:00:00,219.0,2,Direct,219.0,DE,1,0.0,G.009,1,True +50,2019-08-05 13:55:54,Confirmed,BER-DBL,2019-08-14 15:00:00,2019-08-17 08:00:00,304.06,3,Direct,364.0,DE,2,0.0,4.014,1,True +51,2019-08-05 13:56:08,Confirmed,LND-SGL,2019-08-14 09:00:00,2019-08-16 08:00:00,205.0,2,Direct,205.0,GB,1,0.0,2.001,1,True +52,2019-08-05 13:55:23,Confirmed,LND-FAMILY,2019-08-14 09:00:00,2019-08-15 08:00:00,100.0,1,Direct,100.0,GB,1,0.0,3.002,1,True +53,2019-08-05 13:55:57,Confirmed,MUC-SGL,2019-08-14 08:00:00,2019-08-16 07:00:00,150.0,2,Direct,150.0,DE,1,0.0,G.002,1,True +54,2019-08-05 13:55:52,Confirmed,MUC-DBL,2019-08-15 08:00:00,2019-08-17 07:00:00,243.0,2,Direct,243.0,DE,2,0.0,2.014,1,True +55,2019-08-05 13:55:50,Confirmed,MUC-DBL,2019-08-15 08:00:00,2019-08-16 07:00:00,121.0,1,Direct,121.0,DE,2,0.0,1.013,1,True +56,2019-08-05 13:55:46,Confirmed,MUC-SGL,2019-08-15 08:00:00,2019-08-18 07:00:00,225.0,3,Direct,225.0,DE,1,0.0,G.012,1,True +57,2019-08-05 13:56:13,Confirmed,BER-DBL,2019-08-15 15:00:00,2019-08-16 08:00:00,109.0,1,Direct,109.0,DE,2,0.0,3.005,1,True +58,2019-08-05 13:55:10,Confirmed,MUC-FAMILY,2019-08-16 08:00:00,2019-08-17 07:00:00,127.0,1,Direct,177.0,DE,2,0.0,3.002,1,True +59,2019-08-05 13:55:14,Confirmed,,2019-08-17 09:00:00,2019-08-22 08:00:00,657.0,5,Direct,657.0,GB,1,0.0,,1,True +60,2019-08-05 13:55:12,Confirmed,LND-FAMILY,2019-08-17 09:00:00,2019-08-19 08:00:00,265.0,2,Direct,265.0,GB,2,0.0,3.002,1,True +61,2019-08-05 13:55:15,Confirmed,MUC-DBL,2019-08-17 08:00:00,2019-08-18 07:00:00,137.0,1,Direct,137.0,DE,2,0.0,1.001,1,True +62,2019-08-05 13:56:18,Confirmed,LND-SGL,2019-08-17 09:00:00,2019-08-20 08:00:00,311.0,3,Direct,311.0,GB,1,0.0,2.012,1,True +63,2019-08-05 13:56:04,Confirmed,MUC-DBL,2019-08-17 08:00:00,2019-08-18 07:00:00,137.0,1,Direct,137.0,DE,2,0.0,1.012,1,True +64,2019-08-05 13:56:03,Confirmed,BER-DBL,2019-08-18 15:00:00,2019-08-20 08:00:00,200.02,2,Direct,220.0,DE,1,0.0,4.015,1,True +65,2019-08-05 13:55:25,Confirmed,MUC-FAMILY,2019-08-18 08:00:00,2019-08-19 07:00:00,132.0,1,Direct,182.0,DE,2,0.0,3.002,1,True +66,2019-08-05 13:55:08,Confirmed,LND-FAMILY,2019-08-19 09:00:00,2019-08-20 08:00:00,136.0,1,Direct,136.0,GB,2,0.0,3.001,1,True +67,2019-08-05 13:55:26,Confirmed,MUC-DBL,2019-08-19 08:00:00,2019-08-20 07:00:00,122.0,1,Direct,122.0,DE,2,0.0,1.008,1,True +68,2019-08-05 13:55:35,Confirmed,BER-DBL,2019-08-19 15:00:00,2019-08-22 08:00:00,336.06,3,Direct,396.0,DE,2,0.0,3.019,1,True +69,2019-08-05 13:55:40,Confirmed,MUC-DBL,2019-08-19 08:00:00,2019-08-22 07:00:00,384.0,3,Direct,384.0,DE,2,0.0,G.004,1,True +70,2019-08-05 13:55:12,Confirmed,MUC-DBL,2019-08-20 08:00:00,2019-08-22 07:00:00,262.04,2,Direct,322.0,DE,2,0.0,G.005,1,True +71,2019-08-05 13:55:18,Confirmed,MUC-DBL,2019-08-21 08:00:00,2019-08-25 07:00:00,508.0,4,Direct,508.0,DE,2,0.0,2.004,1,True +72,2019-08-05 13:55:41,Confirmed,MUC-DBL,2019-08-21 08:00:00,2019-08-24 07:00:00,343.0,3,Direct,343.0,DE,1,0.0,2.016,1,True +73,2019-08-05 13:55:45,Confirmed,BER-DBL,2019-08-22 15:00:00,2019-08-28 08:00:00,644.12,6,Direct,764.0,DE,2,0.0,2.020,1,True +74,2019-08-05 13:56:02,Confirmed,MUC-DBL,2019-08-22 08:00:00,2019-08-25 07:00:00,325.0,3,Direct,325.0,DE,1,0.0,2.009,1,True +75,2019-08-05 13:55:29,Confirmed,LND-DBL,2019-08-24 09:00:00,2019-08-25 08:00:00,100.0,1,Direct,100.0,GB,1,0.0,2.006,1,True +76,2019-08-05 13:55:43,Confirmed,MUC-FAMILY,2019-08-24 08:00:00,2019-08-25 07:00:00,125.0,1,Direct,175.0,DE,2,0.0,3.001,1,True +77,2019-08-05 13:56:00,Confirmed,BER-DBL,2019-08-25 15:00:00,2019-08-26 08:00:00,110.02,1,Direct,130.0,DE,2,0.0,1.016,1,True +78,2019-08-05 13:55:19,Confirmed,BER-SGL,2019-08-25 15:00:00,2019-08-27 08:00:00,112.0,2,Direct,112.0,DE,1,0.0,G.018,1,True +79,2019-08-05 13:55:31,Confirmed,LND-SGL,2019-08-25 09:00:00,2019-08-26 08:00:00,96.0,1,Direct,96.0,GB,1,0.0,G.002,1,True +80,2019-08-05 13:55:35,Confirmed,MUC-DBL,2019-08-30 08:00:00,2019-09-01 07:00:00,257.04,2,Direct,317.0,DE,2,0.0,1.015,1,True +81,2019-08-05 13:55:13,Confirmed,LND-FAMILY,2019-08-30 09:00:00,2019-09-02 08:00:00,352.0,3,Direct,352.0,GB,1,0.0,3.001,1,True +82,2019-08-05 13:56:09,Confirmed,BER-DBL,2019-09-03 15:00:00,2019-09-05 08:00:00,253.0,2,Direct,253.0,DE,2,0.0,1.016,1,True +83,2019-08-05 13:55:36,Confirmed,MUC-DBL,2019-09-04 08:00:00,2019-09-08 07:00:00,503.04,4,Direct,563.0,DE,1,0.0,1.012,1,True +84,2019-08-05 13:55:27,Confirmed,LND-DBL,2019-09-04 09:00:00,2019-09-06 08:00:00,250.0,2,Direct,250.0,GB,2,0.0,1.015,1,True +85,2019-08-05 13:56:11,Confirmed,BER-DBL,2019-09-07 15:00:00,2019-09-11 08:00:00,466.0,4,Direct,466.0,DE,2,0.0,2.019,1,True +86,2019-08-05 13:56:15,Confirmed,MUC-DBL,2019-09-07 08:00:00,2019-09-09 07:00:00,250.0,2,Direct,250.0,DE,2,0.0,1.014,1,True +87,2019-08-05 13:55:46,Confirmed,LND-FAMILY,2019-09-08 09:00:00,2019-09-09 08:00:00,155.0,1,Direct,155.0,GB,2,0.0,3.002,1,False +88,2019-08-05 13:56:12,Confirmed,MUC-FAMILY,2019-09-17 08:00:00,2019-09-23 07:00:00,926.0,6,Direct,976.0,DE,2,0.0,3.001,1,True +89,2019-08-05 13:55:22,Confirmed,LND-FAMILY,2019-09-22 09:00:00,2019-09-23 08:00:00,147.0,1,Direct,147.0,GB,2,0.0,3.001,1,True +90,2019-08-05 13:56:16,Confirmed,LND-SGL,2019-09-24 09:00:00,2019-09-25 08:00:00,91.0,1,Direct,91.0,GB,1,0.0,2.012,1,True +91,2019-09-25 15:41:57,NoShow,,2019-09-25 15:40:00,2019-09-26 10:00:00,130.0,1,Direct,235.0,DE,1,1.0,,1,True +92,2019-08-05 13:55:29,Confirmed,LND-DBL,2019-10-03 09:00:00,2019-10-07 08:00:00,551.08,4,Direct,671.0,GB,2,0.0,2.011,1,True +93,2019-08-05 13:55:16,Confirmed,MUC-SGL,2019-10-06 08:00:00,2019-10-07 07:00:00,85.0,1,Direct,85.0,DE,1,0.0,2.001,1,True +94,2019-08-05 13:56:06,Confirmed,MUC-FAMILY,2019-10-21 08:00:00,2019-10-23 07:00:00,306.0,2,Direct,356.0,DE,2,0.0,3.002,1,True +95,2019-08-05 13:55:28,Confirmed,MUC-DBL,2019-10-26 08:00:00,2019-10-28 08:00:00,273.0,2,Direct,273.0,DE,2,0.0,2.005,1,True +96,2019-08-05 13:56:11,Confirmed,LND-DBL,2019-11-06 10:00:00,2019-11-07 09:00:00,160.0,1,Direct,160.0,GB,2,0.0,1.014,1,True +97,2019-08-05 13:56:02,Confirmed,LND-FAMILY,2019-11-06 10:00:00,2019-11-07 09:00:00,145.0,1,Direct,145.0,GB,1,0.0,3.002,1,True +98,2019-08-05 13:55:44,Confirmed,BER-DBL,2019-11-08 16:00:00,2019-11-09 09:00:00,76.0,1,Direct,76.0,DE,1,0.0,3.014,1,True +99,2019-08-05 13:55:20,Confirmed,BER-DBL,2019-11-22 16:00:00,2019-11-23 09:00:00,93.0,1,Direct,93.0,DE,1,0.0,1.020,1,True +100,2019-08-05 13:55:58,Confirmed,LND-SGL,2019-12-27 10:00:00,2019-12-30 09:00:00,245.0,3,Direct,245.0,GB,1,0.0,2.010,1,True +101,2020-01-17 08:26:09,Canceled,,2020-01-17 09:00:00,2020-01-18 08:00:00,85.0,1,Direct,85.0,,1,0.0,,1,True +102,2020-01-21 04:55:20,Confirmed,LND-FAMILY,2020-01-21 10:00:00,2020-01-22 09:00:00,102.0,1,Direct,102.0,,1,0.0,3.001,1,True +103,2020-02-20 07:05:54,CheckedOut,BER-DBL,2020-02-20 16:00:00,2020-02-21 09:00:00,0.0,1,Direct,0.0,,1,0.0,4.004,1,True +104,2020-02-20 07:38:22,Confirmed,MUC-DBL,2020-02-29 09:00:00,2020-03-03 08:00:00,675.06,3,Direct,780.0,VN,2,0.0,1.001,1,False +105,2020-02-20 08:29:19,Confirmed,,2020-02-29 09:00:00,2020-03-01 08:00:00,245.0,1,Direct,245.0,,2,0.0,,1,True +107,2020-03-19 03:26:52,Confirmed,CENTRI-RFC10,2020-03-19 03:23:00,2020-03-20 08:00:00,0.0,2,Direct,189.98,,1,0.0,R304,2,False +112,2020-05-14 07:26:22,Confirmed,LND-DBL,2020-05-14 07:24:00,2020-05-19 08:00:00,0.0,6,Ibe,530.0,VN,1,0.0,1.005,1,False +114,2020-05-14 07:14:55,CheckedOut,LND-SGL,2020-05-14 07:14:00,2020-05-15 08:00:00,0.0,2,Direct,0.0,VN,1,0.0,G.002,1,False +122,2020-05-19 04:30:43,Canceled,LND-SGL,2020-05-19 09:00:00,2020-05-20 08:00:00,80.0,1,Direct,100.0,VN,1,0.0,1.003,1,False +125,2020-05-21 09:28:09,Confirmed,,2020-05-21 15:00:00,2020-05-23 08:00:00,135.0,2,Direct,140.0,,1,0.0,,1,True +126,2020-05-21 09:28:18,NoShow,,2020-05-21 15:00:00,2020-05-23 08:00:00,135.0,2,Direct,140.0,,1,0.0,,1,True +127,2020-05-21 09:28:49,CheckedOut,,2020-05-21 15:00:00,2020-05-23 08:00:00,160.0,2,Direct,215.0,,1,0.0,,1,True +129,2020-06-02 03:36:51,Canceled,CENTRI-RFC09,2020-06-02 15:00:00,2020-06-03 08:00:00,87.5,1,Direct,145.0,,1,0.0,R303,1,False +130,2020-06-02 03:45:34,Confirmed,,2020-06-02 09:00:00,2020-06-03 08:00:00,80.0,1,Direct,100.0,VN,1,0.0,,1,True +133,2020-06-10 04:31:09,Confirmed,,2020-06-11 08:00:00,2020-06-13 07:00:00,51.0,2,Direct,131.0,GB,1,0.0,,6,True +139,2020-06-10 04:31:10,Confirmed,,2020-06-12 08:00:00,2020-06-14 07:00:00,240.0,2,Direct,245.0,GB,1,0.0,,6,True +145,2020-06-26 04:24:40,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,4,Ibe,492.0,,1,0.0,,1,True +146,2020-06-26 04:26:18,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,4,Ibe,492.0,,1,0.0,,1,True +147,2020-06-26 04:27:53,Canceled,CENTRI-RFC10,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,4,Ibe,492.0,,1,0.0,R304,1,True +148,2020-06-26 04:34:23,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,4,Ibe,492.0,,1,0.0,,1,True +149,2020-06-26 04:36:20,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,4,Ibe,492.0,,1,0.0,,1,True +150,2020-06-26 04:37:14,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,4,Ibe,492.0,,1,0.0,,1,True +151,2020-06-26 04:38:26,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,4,Ibe,492.0,,1,0.0,,1,True +152,2020-06-26 04:41:50,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,4,Ibe,492.0,,1,0.0,,1,True +153,2020-06-26 04:43:27,Canceled,CENTRI-RFC03,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,4,Ibe,492.0,,1,0.0,R104,1,True +154,2020-06-26 06:21:26,Confirmed,CENTRI-RFC03,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,4,Ibe,492.0,,1,0.0,R104,1,True +155,2020-06-17 10:14:34,Canceled,CENTRI-RFC09,2020-07-01 12:00:00,2020-07-03 11:00:00,128.0,2,Ibe,128.0,,2,0.0,R303,2,False +162,2020-06-29 12:58:45,Canceled,CENTRI-RFC05,2020-07-08 12:00:00,2020-07-09 11:00:00,52.0,1,Ibe,62.0,,1,0.0,R105,1,True +163,2020-07-10 11:39:38,Confirmed,GVDTST2-SUITTUB,2020-07-10 11:39:38,2020-07-13 09:00:00,4283.0,3,ChannelManager,4633.0,,1,0.0,PS-3,1,True +183,2020-07-10 11:54:42,Canceled,GVDTST2-SUITE,2020-08-02 10:01:00,2020-08-03 09:00:00,1275.0,1,ChannelManager,1275.0,,1,0.0,GS-6,1,True +192,2020-07-22 04:25:46,Confirmed,CENTRI-RFC10,2020-08-05 12:00:00,2020-08-08 11:00:00,421.0,3,ChannelManager,421.0,,1,0.0,R304,1,True +193,2020-07-22 04:53:06,Confirmed,CENTRI-RFC02,2020-08-05 12:00:00,2020-08-08 11:00:00,755.0,3,ChannelManager,755.0,,1,0.0,R102,1,True +194,2020-07-22 04:55:08,Confirmed,CENTRI-RFC04,2020-08-05 12:00:00,2020-08-08 11:00:00,814.0,3,ChannelManager,814.0,,1,0.0,R206,1,True +195,2020-07-22 05:14:24,Confirmed,CENTRI-RFC06,2020-08-05 12:00:00,2020-08-08 11:00:00,967.0,3,ChannelManager,967.0,,1,0.0,R204,1,True +198,2020-07-13 09:20:27,Confirmed,GVDTST2-SUITE,2020-08-11 10:01:00,2020-08-12 09:00:00,1250.0,1,ChannelManager,1750.0,,2,0.0,GS-6,1,True +200,2020-07-01 05:52:27,Canceled,CENTRI-RFC05,2020-08-12 12:00:00,2020-08-14 11:00:00,170.0,2,Ibe,190.0,,1,0.0,R105,1,True +207,2020-06-24 04:25:28,Canceled,,2020-08-15 12:00:00,2020-08-17 11:00:00,238.0,2,Ibe,238.0,,2,0.0,,1,True +208,2020-06-24 04:25:28,Canceled,,2020-08-15 12:00:00,2020-08-17 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +209,2020-06-24 04:25:29,Canceled,,2020-08-15 12:00:00,2020-08-17 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +211,2020-07-16 07:20:54,Confirmed,GVDCT1-BEDROOM,2020-08-19 07:00:00,2020-08-20 17:00:00,2470.0,2,ChannelManager,2470.0,,1,0.0,PS-3,1,True +213,2020-06-24 04:51:32,Canceled,,2020-08-23 12:00:00,2020-08-25 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +214,2020-06-24 04:51:32,Canceled,,2020-08-23 12:00:00,2020-08-25 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +215,2020-06-24 04:51:34,Canceled,,2020-08-23 12:00:00,2020-08-25 11:00:00,238.0,2,Ibe,238.0,,2,0.0,,1,True +220,2020-06-24 04:58:53,Canceled,,2020-08-26 12:00:00,2020-08-28 11:00:00,238.0,2,Ibe,238.0,,2,0.0,,1,True +221,2020-06-24 04:58:53,Canceled,,2020-08-26 12:00:00,2020-08-28 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +222,2020-06-24 04:58:54,Canceled,,2020-08-26 12:00:00,2020-08-28 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +223,2020-06-24 05:01:34,Canceled,,2020-08-29 12:00:00,2020-08-30 11:00:00,119.0,1,Ibe,119.0,,2,0.0,,1,True +224,2020-06-24 05:01:35,Canceled,,2020-08-29 12:00:00,2020-08-30 11:00:00,120.0,1,Ibe,120.0,,2,1.0,,1,True +225,2020-06-24 05:01:36,Canceled,,2020-08-29 12:00:00,2020-08-30 11:00:00,120.0,1,Ibe,120.0,,1,0.0,,1,True +226,2020-06-24 05:04:23,Canceled,,2020-09-01 12:00:00,2020-09-03 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +227,2020-06-24 05:04:23,Canceled,,2020-09-01 12:00:00,2020-09-03 11:00:00,238.0,2,Ibe,238.0,,2,0.0,,1,True +228,2020-06-24 05:04:24,Canceled,,2020-09-01 12:00:00,2020-09-03 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +229,2020-06-24 05:06:53,Canceled,,2020-09-04 12:00:00,2020-09-05 11:00:00,120.0,1,Ibe,120.0,,2,1.0,,1,True +230,2020-06-24 05:06:54,Canceled,,2020-09-04 12:00:00,2020-09-05 11:00:00,120.0,1,Ibe,120.0,,1,0.0,,1,True +231,2020-06-24 05:06:54,Canceled,,2020-09-04 12:00:00,2020-09-05 11:00:00,119.0,1,Ibe,119.0,,2,0.0,,1,True +232,2020-06-24 05:11:50,Canceled,,2020-09-07 12:00:00,2020-09-09 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +233,2020-06-24 05:11:50,Canceled,,2020-09-07 12:00:00,2020-09-09 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +234,2020-06-24 05:11:50,Canceled,,2020-09-07 12:00:00,2020-09-09 11:00:00,238.0,2,Ibe,238.0,,2,0.0,,1,True +237,2020-06-24 05:13:40,Canceled,,2020-09-11 12:00:00,2020-09-13 11:00:00,238.0,2,Ibe,238.0,,2,0.0,,1,True +238,2020-06-24 05:13:41,Canceled,,2020-09-11 12:00:00,2020-09-13 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +239,2020-06-24 05:13:41,Canceled,,2020-09-11 12:00:00,2020-09-13 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +240,2020-06-24 05:24:06,Canceled,,2020-09-15 12:00:00,2020-09-17 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +241,2020-06-24 05:24:07,Canceled,,2020-09-15 12:00:00,2020-09-17 11:00:00,238.0,2,Ibe,238.0,,2,0.0,,1,True +242,2020-06-24 05:24:07,Canceled,,2020-09-15 12:00:00,2020-09-17 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +248,2020-06-24 05:27:41,Canceled,,2020-09-19 12:00:00,2020-09-21 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +249,2020-06-24 05:27:42,Canceled,,2020-09-19 12:00:00,2020-09-21 11:00:00,238.0,2,Ibe,238.0,,2,0.0,,1,True +250,2020-06-24 05:27:42,Canceled,,2020-09-19 12:00:00,2020-09-21 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +251,2020-06-24 05:29:18,Canceled,,2020-09-23 12:00:00,2020-09-25 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +252,2020-06-24 05:29:19,Canceled,,2020-09-23 12:00:00,2020-09-25 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +253,2020-06-24 05:29:19,Canceled,,2020-09-23 12:00:00,2020-09-25 11:00:00,238.0,2,Ibe,238.0,,2,0.0,,1,True +254,2020-06-24 07:18:56,Canceled,CENTRI-RFC10,2020-09-27 12:00:00,2020-09-29 11:00:00,238.0,2,Ibe,238.0,,2,0.0,R304,1,True +255,2020-06-24 07:18:57,Canceled,,2020-09-27 12:00:00,2020-09-29 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +256,2020-06-24 07:18:57,Canceled,,2020-09-27 12:00:00,2020-09-29 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +257,2020-06-24 07:20:15,Canceled,,2020-10-01 12:00:00,2020-10-03 11:00:00,238.0,2,Ibe,238.0,,2,0.0,,1,True +258,2020-06-24 07:20:16,Canceled,,2020-10-01 12:00:00,2020-10-03 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +259,2020-06-24 07:20:16,Canceled,,2020-10-01 12:00:00,2020-10-03 11:00:00,240.0,2,Ibe,240.0,,2,1.0,,1,True +260,2020-06-24 07:49:38,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +261,2020-06-24 07:49:38,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,2,Ibe,250.0,,2,1.0,,1,True +262,2020-06-24 07:49:39,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,238.0,2,Ibe,248.0,,2,0.0,,1,True +263,2020-06-25 09:10:12,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +264,2020-06-25 09:10:13,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,2,Ibe,250.0,,2,1.0,,1,True +265,2020-06-25 09:10:13,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,238.0,2,Ibe,248.0,,2,0.0,,1,True +266,2020-06-24 08:09:45,Canceled,,2020-10-07 12:00:00,2020-10-09 11:00:00,238.0,2,Ibe,248.0,,2,0.0,,1,True +267,2020-06-24 08:09:45,Canceled,,2020-10-07 12:00:00,2020-10-09 11:00:00,240.0,2,Ibe,240.0,,1,0.0,,1,True +268,2020-06-24 08:09:46,Canceled,,2020-10-07 12:00:00,2020-10-09 11:00:00,240.0,2,Ibe,250.0,,2,1.0,,1,True +285,2020-07-21 06:45:50,Confirmed,GVDTST2-SUITTUB,2020-10-15 10:01:00,2020-10-18 09:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,PS-3,1,True +286,2020-07-21 07:44:47,Confirmed,,2020-10-19 10:01:00,2020-10-22 09:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +295,2020-07-21 09:04:27,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +296,2020-07-21 09:11:46,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +297,2020-07-21 09:22:55,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +298,2020-07-21 09:25:07,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +299,2020-07-21 11:01:33,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +300,2020-07-21 11:04:41,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +301,2020-07-21 11:53:02,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +302,2020-07-21 11:55:40,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +303,2020-07-21 11:58:46,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +304,2020-07-21 12:00:14,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +305,2020-07-21 12:08:01,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +306,2020-07-21 12:46:15,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +307,2020-07-21 12:47:12,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,3,ChannelManager,4335.0,,1,0.0,,1,True +316,2020-07-22 04:51:14,Confirmed,CENTRI-RFC05,2021-01-01 13:00:00,2021-01-04 12:00:00,136.0,3,ChannelManager,136.0,,1,0.0,R201,1,True diff --git a/ai/storage/test-file-id-input/1st_reservation_fillna.csv b/ai/storage/test-file-id-input/1st_reservation_fillna.csv new file mode 100644 index 0000000..e13258a --- /dev/null +++ b/ai/storage/test-file-id-input/1st_reservation_fillna.csv @@ -0,0 +1,203 @@ +GuestID,CreatedDate,Status,RoomGroupID,ArrivalDate,DepartureDate,RoomPrice,Nights,Channel,TotalPayment,Country,Adults,Children,RoomNo,NumberOfRooms,is1stVisit +0,2019-08-05 13:55:31,CONFIRMED,BER-DBL,2019-08-06 15:00:00,2019-08-08 08:00:00,221.02,1,direct,241.0,de,1,0.0,4.009,1,True +1,2019-08-05 13:55:23,NOSHOW,BER-DBL,2019-08-06 15:00:00,2019-08-10 08:00:00,386.0,3,direct,386.0,de,2,0.0,1.010,1,True +2,2019-08-05 13:55:30,CANCELED,LND-DBL,2019-08-06 09:00:00,2019-08-07 08:00:00,120.02,0,direct,150.0,gb,2,0.0,G.015,1,True +3,2019-08-05 13:55:38,CHECKEDOUT,MUC-FAMILY,2019-08-06 08:00:00,2019-08-12 07:00:00,701.0,5,direct,726.0,others,1,0.0,3.001,1,True +4,2019-08-05 13:55:47,CONFIRMED,LND-DBL,2019-08-06 09:00:00,2019-08-10 08:00:00,520.08,3,direct,640.0,gb,2,0.0,1.008,1,True +5,2019-08-05 13:55:39,CONFIRMED,LND-SGL,2019-08-06 09:00:00,2019-08-12 08:00:00,506.0,5,direct,506.0,gb,1,0.0,2.008,1,True +6,2019-08-05 13:55:38,CONFIRMED,MUC-DBL,2019-08-06 08:00:00,2019-08-07 07:00:00,123.01,0,direct,138.0,de,1,0.0,1.006,1,True +7,2019-08-05 13:56:07,CANCELED,LND-DBL,2019-08-06 09:00:00,2019-08-13 08:00:00,913.14,6,direct,1123.0,gb,2,0.0,2.011,1,True +8,2019-08-05 13:55:48,CONFIRMED,LND-DBL,2019-08-06 09:00:00,2019-08-07 08:00:00,120.02,0,direct,150.0,gb,2,0.0,1.014,1,True +9,2019-08-05 13:56:13,CONFIRMED,LND-SGL,2019-08-06 09:00:00,2019-08-08 08:00:00,163.0,1,direct,163.0,gb,1,0.0,2.012,1,True +10,2019-08-05 13:56:17,CONFIRMED,BER-DBL,2019-08-06 15:00:00,2019-08-07 08:00:00,93.0,0,direct,93.0,de,2,0.0,1.014,1,True +11,2019-08-05 13:56:15,CONFIRMED,MUC-SGL,2019-08-06 08:00:00,2019-08-07 07:00:00,78.0,0,direct,78.0,de,1,0.0,2.001,1,True +12,2019-08-05 13:56:16,CONFIRMED,LND-DBL,2019-08-07 09:00:00,2019-08-08 08:00:00,118.0,0,direct,118.0,gb,1,0.0,G.015,1,True +13,2019-08-05 13:55:07,NOSHOW,LND-SGL,2019-08-07 09:00:00,2019-08-08 08:00:00,88.0,0,direct,88.0,gb,1,0.0,G.007,1,True +14,2019-08-05 13:55:16,CONFIRMED,BER-DBL,2019-08-07 15:00:00,2019-08-09 08:00:00,231.04,1,direct,271.0,de,2,0.0,2.004,1,True +15,2019-08-05 13:55:33,CONFIRMED,LND-FAMILY,2019-08-07 09:00:00,2019-08-12 08:00:00,681.0,4,direct,681.0,gb,2,0.0,3.002,1,True +16,2019-08-05 13:56:12,CONFIRMED,LND-DBL,2019-08-07 09:00:00,2019-08-08 08:00:00,118.0,0,direct,118.0,gb,1,0.0,2.006,1,True +17,2019-08-05 13:55:59,CONFIRMED,LND-SGL,2019-08-07 09:00:00,2019-08-09 08:00:00,172.0,1,direct,172.0,gb,1,0.0,G.003,1,True +18,2019-08-05 13:55:08,CONFIRMED,MUC-DBL,2019-08-07 08:00:00,2019-08-08 07:00:00,134.02,0,direct,164.0,de,2,0.0,1.015,1,True +19,2019-08-05 13:55:42,CONFIRMED,MUC-SGL,2019-08-07 08:00:00,2019-08-08 07:00:00,89.0,0,direct,89.0,de,1,0.0,G.008,1,True +20,2019-08-05 13:55:56,CONFIRMED,MUC-SGL,2019-08-07 08:00:00,2019-08-08 07:00:00,89.0,0,direct,89.0,de,1,0.0,2.012,1,True +21,2019-08-05 13:55:37,CONFIRMED,MUC-DBL,2019-08-07 08:00:00,2019-08-08 07:00:00,134.02,0,direct,164.0,de,2,0.0,2.011,1,True +22,2019-08-05 13:56:10,CONFIRMED,BER-DBL,2019-08-08 15:00:00,2019-08-09 08:00:00,93.0,0,direct,93.0,de,1,0.0,4.020,1,True +23,2019-08-05 13:56:14,CONFIRMED,MUC-DBL,2019-08-08 08:00:00,2019-08-10 07:00:00,262.0,1,direct,262.0,de,2,0.0,2.014,1,True +24,2019-08-05 13:55:36,CONFIRMED,BER-DBL,2019-08-08 15:00:00,2019-08-09 08:00:00,93.0,0,direct,93.0,de,1,0.0,3.019,1,True +25,2019-08-05 13:56:18,CONFIRMED,BER-SGL,2019-08-08 15:00:00,2019-08-09 08:00:00,63.0,0,direct,63.0,de,1,0.0,4.002,1,True +26,2019-08-05 13:55:09,CONFIRMED,LND-FAMILY,2019-08-08 09:00:00,2019-08-10 08:00:00,237.0,1,direct,237.0,gb,1,0.0,3.001,1,True +27,2019-08-05 13:55:09,CONFIRMED,BER-SGL,2019-08-08 15:00:00,2019-08-09 08:00:00,63.0,0,direct,63.0,de,1,0.0,G.002,1,True +28,2019-08-05 13:55:27,CONFIRMED,BER-DBL,2019-08-08 15:00:00,2019-08-10 08:00:00,185.0,1,direct,185.0,de,2,0.0,2.005,1,True +29,2019-08-05 13:55:21,CONFIRMED,LND-DBL,2019-08-08 09:00:00,2019-08-09 08:00:00,129.02,0,direct,159.0,gb,2,0.0,G.009,1,True +30,2019-08-05 13:55:53,CONFIRMED,BER-SGL,2019-08-08 15:00:00,2019-08-09 08:00:00,63.0,0,direct,63.0,de,1,0.0,G.018,1,True +31,2019-08-05 13:55:32,CONFIRMED,LND-DBL,2019-08-09 09:00:00,2019-08-12 08:00:00,394.0,2,direct,394.0,gb,2,0.0,1.012,1,True +32,2019-08-05 13:55:14,CONFIRMED,BER-SGL,2019-08-09 15:00:00,2019-08-14 08:00:00,271.0,4,direct,271.0,de,1,0.0,G.017,1,True +33,2019-08-05 13:55:49,CONFIRMED,LND-DBL,2019-08-09 09:00:00,2019-08-10 08:00:00,138.0,0,direct,138.0,gb,2,0.0,1.002,1,True +34,2019-08-05 13:55:40,CONFIRMED,LND-SGL,2019-08-09 09:00:00,2019-08-16 08:00:00,740.0,6,direct,740.0,gb,1,0.0,G.010,1,True +35,2019-08-05 13:56:10,CONFIRMED,BER-DBL,2019-08-10 15:00:00,2019-08-12 08:00:00,188.0,1,direct,188.0,de,2,0.0,4.014,1,True +36,2019-08-05 13:56:06,CONFIRMED,MUC-DBL,2019-08-10 08:00:00,2019-08-11 07:00:00,142.0,0,direct,142.0,de,1,0.0,G.009,1,True +37,2019-08-05 13:55:22,CONFIRMED,MUC-FAMILY,2019-08-10 08:00:00,2019-08-14 07:00:00,464.0,3,direct,489.0,de,1,0.0,3.002,1,True +38,2019-08-05 13:55:34,CONFIRMED,LND-DBL,2019-08-11 09:00:00,2019-08-12 08:00:00,120.0,0,direct,120.0,gb,1,0.0,G.004,1,True +39,2019-08-05 13:55:17,CONFIRMED,MUC-DBL,2019-08-11 08:00:00,2019-08-13 07:00:00,257.02,1,direct,287.0,de,1,0.0,1.005,1,True +40,2019-08-05 13:56:01,CONFIRMED,MUC-SGL,2019-08-11 08:00:00,2019-08-13 07:00:00,167.0,1,direct,167.0,de,1,0.0,2.013,1,True +41,2019-08-05 13:55:55,CONFIRMED,LND-FAMILY,2019-08-11 09:00:00,2019-08-12 08:00:00,120.0,0,direct,120.0,gb,2,0.0,3.001,1,True +42,2019-08-05 13:55:24,CONFIRMED,MUC-DBL,2019-08-11 08:00:00,2019-08-18 07:00:00,901.0,6,direct,901.0,de,1,0.0,1.014,1,True +43,2019-08-05 13:56:03,CONFIRMED,LND-DBL,2019-08-12 09:00:00,2019-08-14 08:00:00,306.0,1,direct,306.0,gb,2,0.0,1.015,1,True +44,2019-08-05 13:55:51,CONFIRMED,MUC-SGL,2019-08-12 08:00:00,2019-08-13 07:00:00,97.0,0,direct,97.0,de,1,0.0,1.011,1,True +45,2019-08-05 13:56:04,CONFIRMED,LND-FAMILY,2019-08-13 09:00:00,2019-08-15 08:00:00,254.0,1,direct,254.0,gb,1,0.0,3.001,1,True +46,2019-08-05 13:55:11,CONFIRMED,MUC-FAMILY,2019-08-13 08:00:00,2019-08-19 07:00:00,766.0,5,direct,791.0,de,1,0.0,3.001,1,True +47,2019-08-05 13:55:54,CONFIRMED,LND-SGL,2019-08-13 09:00:00,2019-08-15 08:00:00,154.0,1,direct,154.0,gb,1,0.0,G.001,1,True +48,2019-08-05 13:55:52,CONFIRMED,LND-DBL,2019-08-13 09:00:00,2019-08-15 08:00:00,244.0,1,direct,244.0,gb,2,0.0,1.006,1,True +49,2019-08-05 13:56:07,CONFIRMED,MUC-DBL,2019-08-13 08:00:00,2019-08-15 07:00:00,219.0,1,direct,219.0,de,1,0.0,G.009,1,True +50,2019-08-05 13:55:54,CONFIRMED,BER-DBL,2019-08-14 15:00:00,2019-08-17 08:00:00,304.06,2,direct,364.0,de,2,0.0,4.014,1,True +51,2019-08-05 13:56:08,CONFIRMED,LND-SGL,2019-08-14 09:00:00,2019-08-16 08:00:00,205.0,1,direct,205.0,gb,1,0.0,2.001,1,True +52,2019-08-05 13:55:23,CONFIRMED,LND-FAMILY,2019-08-14 09:00:00,2019-08-15 08:00:00,100.0,0,direct,100.0,gb,1,0.0,3.002,1,True +53,2019-08-05 13:55:57,CONFIRMED,MUC-SGL,2019-08-14 08:00:00,2019-08-16 07:00:00,150.0,1,direct,150.0,de,1,0.0,G.002,1,True +54,2019-08-05 13:55:52,CONFIRMED,MUC-DBL,2019-08-15 08:00:00,2019-08-17 07:00:00,243.0,1,direct,243.0,de,2,0.0,2.014,1,True +55,2019-08-05 13:55:50,CONFIRMED,MUC-DBL,2019-08-15 08:00:00,2019-08-16 07:00:00,121.0,0,direct,121.0,de,2,0.0,1.013,1,True +56,2019-08-05 13:55:46,CONFIRMED,MUC-SGL,2019-08-15 08:00:00,2019-08-18 07:00:00,225.0,2,direct,225.0,de,1,0.0,G.012,1,True +57,2019-08-05 13:56:13,CONFIRMED,BER-DBL,2019-08-15 15:00:00,2019-08-16 08:00:00,109.0,0,direct,109.0,de,2,0.0,3.005,1,True +58,2019-08-05 13:55:10,CONFIRMED,MUC-FAMILY,2019-08-16 08:00:00,2019-08-17 07:00:00,127.0,0,direct,177.0,de,2,0.0,3.002,1,True +59,2019-08-05 13:55:14,CONFIRMED,,2019-08-17 09:00:00,2019-08-22 08:00:00,657.0,4,direct,657.0,gb,1,0.0,,1,True +60,2019-08-05 13:55:12,CONFIRMED,LND-FAMILY,2019-08-17 09:00:00,2019-08-19 08:00:00,265.0,1,direct,265.0,gb,2,0.0,3.002,1,True +61,2019-08-05 13:55:15,CONFIRMED,MUC-DBL,2019-08-17 08:00:00,2019-08-18 07:00:00,137.0,0,direct,137.0,de,2,0.0,1.001,1,True +62,2019-08-05 13:56:18,CONFIRMED,LND-SGL,2019-08-17 09:00:00,2019-08-20 08:00:00,311.0,2,direct,311.0,gb,1,0.0,2.012,1,True +63,2019-08-05 13:56:04,CONFIRMED,MUC-DBL,2019-08-17 08:00:00,2019-08-18 07:00:00,137.0,0,direct,137.0,de,2,0.0,1.012,1,True +64,2019-08-05 13:56:03,CONFIRMED,BER-DBL,2019-08-18 15:00:00,2019-08-20 08:00:00,200.02,1,direct,220.0,de,1,0.0,4.015,1,True +65,2019-08-05 13:55:25,CONFIRMED,MUC-FAMILY,2019-08-18 08:00:00,2019-08-19 07:00:00,132.0,0,direct,182.0,de,2,0.0,3.002,1,True +66,2019-08-05 13:55:08,CONFIRMED,LND-FAMILY,2019-08-19 09:00:00,2019-08-20 08:00:00,136.0,0,direct,136.0,gb,2,0.0,3.001,1,True +67,2019-08-05 13:55:26,CONFIRMED,MUC-DBL,2019-08-19 08:00:00,2019-08-20 07:00:00,122.0,0,direct,122.0,de,2,0.0,1.008,1,True +68,2019-08-05 13:55:35,CONFIRMED,BER-DBL,2019-08-19 15:00:00,2019-08-22 08:00:00,336.06,2,direct,396.0,de,2,0.0,3.019,1,True +69,2019-08-05 13:55:40,CONFIRMED,MUC-DBL,2019-08-19 08:00:00,2019-08-22 07:00:00,384.0,2,direct,384.0,de,2,0.0,G.004,1,True +70,2019-08-05 13:55:12,CONFIRMED,MUC-DBL,2019-08-20 08:00:00,2019-08-22 07:00:00,262.04,1,direct,322.0,de,2,0.0,G.005,1,True +71,2019-08-05 13:55:18,CONFIRMED,MUC-DBL,2019-08-21 08:00:00,2019-08-25 07:00:00,508.0,3,direct,508.0,de,2,0.0,2.004,1,True +72,2019-08-05 13:55:41,CONFIRMED,MUC-DBL,2019-08-21 08:00:00,2019-08-24 07:00:00,343.0,2,direct,343.0,de,1,0.0,2.016,1,True +73,2019-08-05 13:55:45,CONFIRMED,BER-DBL,2019-08-22 15:00:00,2019-08-28 08:00:00,644.12,5,direct,764.0,de,2,0.0,2.020,1,True +74,2019-08-05 13:56:02,CONFIRMED,MUC-DBL,2019-08-22 08:00:00,2019-08-25 07:00:00,325.0,2,direct,325.0,de,1,0.0,2.009,1,True +75,2019-08-05 13:55:29,CONFIRMED,LND-DBL,2019-08-24 09:00:00,2019-08-25 08:00:00,100.0,0,direct,100.0,gb,1,0.0,2.006,1,True +76,2019-08-05 13:55:43,CONFIRMED,MUC-FAMILY,2019-08-24 08:00:00,2019-08-25 07:00:00,125.0,0,direct,175.0,de,2,0.0,3.001,1,True +77,2019-08-05 13:56:00,CONFIRMED,BER-DBL,2019-08-25 15:00:00,2019-08-26 08:00:00,110.02,0,direct,130.0,de,2,0.0,1.016,1,True +78,2019-08-05 13:55:19,CONFIRMED,BER-SGL,2019-08-25 15:00:00,2019-08-27 08:00:00,112.0,1,direct,112.0,de,1,0.0,G.018,1,True +79,2019-08-05 13:55:31,CONFIRMED,LND-SGL,2019-08-25 09:00:00,2019-08-26 08:00:00,96.0,0,direct,96.0,gb,1,0.0,G.002,1,True +80,2019-08-05 13:55:35,CONFIRMED,MUC-DBL,2019-08-30 08:00:00,2019-09-01 07:00:00,257.04,1,direct,317.0,de,2,0.0,1.015,1,True +81,2019-08-05 13:55:13,CONFIRMED,LND-FAMILY,2019-08-30 09:00:00,2019-09-02 08:00:00,352.0,2,direct,352.0,gb,1,0.0,3.001,1,True +82,2019-08-05 13:56:09,CONFIRMED,BER-DBL,2019-09-03 15:00:00,2019-09-05 08:00:00,253.0,1,direct,253.0,de,2,0.0,1.016,1,True +83,2019-08-05 13:55:36,CONFIRMED,MUC-DBL,2019-09-04 08:00:00,2019-09-08 07:00:00,503.04,3,direct,563.0,de,1,0.0,1.012,1,True +84,2019-08-05 13:55:27,CONFIRMED,LND-DBL,2019-09-04 09:00:00,2019-09-06 08:00:00,250.0,1,direct,250.0,gb,2,0.0,1.015,1,True +85,2019-08-05 13:56:11,CONFIRMED,BER-DBL,2019-09-07 15:00:00,2019-09-11 08:00:00,466.0,3,direct,466.0,de,2,0.0,2.019,1,True +86,2019-08-05 13:56:15,CONFIRMED,MUC-DBL,2019-09-07 08:00:00,2019-09-09 07:00:00,250.0,1,direct,250.0,de,2,0.0,1.014,1,True +87,2019-08-05 13:55:46,CONFIRMED,LND-FAMILY,2019-09-08 09:00:00,2019-09-09 08:00:00,155.0,0,direct,155.0,gb,2,0.0,3.002,1,False +88,2019-08-05 13:56:12,CONFIRMED,MUC-FAMILY,2019-09-17 08:00:00,2019-09-23 07:00:00,926.0,5,direct,976.0,de,2,0.0,3.001,1,True +89,2019-08-05 13:55:22,CONFIRMED,LND-FAMILY,2019-09-22 09:00:00,2019-09-23 08:00:00,147.0,0,direct,147.0,gb,2,0.0,3.001,1,True +90,2019-08-05 13:56:16,CONFIRMED,LND-SGL,2019-09-24 09:00:00,2019-09-25 08:00:00,91.0,0,direct,91.0,gb,1,0.0,2.012,1,True +91,2019-09-25 15:41:57,NOSHOW,,2019-09-25 15:40:00,2019-09-26 10:00:00,130.0,0,direct,235.0,de,1,1.0,,1,True +92,2019-08-05 13:55:29,CONFIRMED,LND-DBL,2019-10-03 09:00:00,2019-10-07 08:00:00,551.08,3,direct,671.0,gb,2,0.0,2.011,1,True +93,2019-08-05 13:55:16,CONFIRMED,MUC-SGL,2019-10-06 08:00:00,2019-10-07 07:00:00,85.0,0,direct,85.0,de,1,0.0,2.001,1,True +94,2019-08-05 13:56:06,CONFIRMED,MUC-FAMILY,2019-10-21 08:00:00,2019-10-23 07:00:00,306.0,1,direct,356.0,de,2,0.0,3.002,1,True +95,2019-08-05 13:55:28,CONFIRMED,MUC-DBL,2019-10-26 08:00:00,2019-10-28 08:00:00,273.0,2,direct,273.0,de,2,0.0,2.005,1,True +96,2019-08-05 13:56:11,CONFIRMED,LND-DBL,2019-11-06 10:00:00,2019-11-07 09:00:00,160.0,0,direct,160.0,gb,2,0.0,1.014,1,True +97,2019-08-05 13:56:02,CONFIRMED,LND-FAMILY,2019-11-06 10:00:00,2019-11-07 09:00:00,145.0,0,direct,145.0,gb,1,0.0,3.002,1,True +98,2019-08-05 13:55:44,CONFIRMED,BER-DBL,2019-11-08 16:00:00,2019-11-09 09:00:00,76.0,0,direct,76.0,de,1,0.0,3.014,1,True +99,2019-08-05 13:55:20,CONFIRMED,BER-DBL,2019-11-22 16:00:00,2019-11-23 09:00:00,93.0,0,direct,93.0,de,1,0.0,1.020,1,True +100,2019-08-05 13:55:58,CONFIRMED,LND-SGL,2019-12-27 10:00:00,2019-12-30 09:00:00,245.0,2,direct,245.0,gb,1,0.0,2.010,1,True +101,2020-01-17 08:26:09,CANCELED,,2020-01-17 09:00:00,2020-01-18 08:00:00,85.0,0,direct,85.0,others,1,0.0,,1,True +102,2020-01-21 04:55:20,CONFIRMED,LND-FAMILY,2020-01-21 10:00:00,2020-01-22 09:00:00,102.0,0,direct,102.0,others,1,0.0,3.001,1,True +103,2020-02-20 07:05:54,CHECKEDOUT,BER-DBL,2020-02-20 16:00:00,2020-02-21 09:00:00,0.0,0,direct,0.0,others,1,0.0,4.004,1,True +104,2020-02-20 07:38:22,CONFIRMED,MUC-DBL,2020-02-29 09:00:00,2020-03-03 08:00:00,675.06,2,direct,780.0,vn,2,0.0,1.001,1,False +105,2020-02-20 08:29:19,CONFIRMED,,2020-02-29 09:00:00,2020-03-01 08:00:00,245.0,0,direct,245.0,others,2,0.0,,1,True +107,2020-03-19 03:26:52,CONFIRMED,CENTRI-RFC10,2020-03-19 03:23:00,2020-03-20 08:00:00,0.0,1,direct,189.98,others,1,0.0,R304,2,False +112,2020-05-14 07:26:22,CONFIRMED,LND-DBL,2020-05-14 07:24:00,2020-05-19 08:00:00,0.0,5,ibe,530.0,vn,1,0.0,1.005,1,False +114,2020-05-14 07:14:55,CHECKEDOUT,LND-SGL,2020-05-14 07:14:00,2020-05-15 08:00:00,0.0,1,direct,0.0,vn,1,0.0,G.002,1,False +122,2020-05-19 04:30:43,CANCELED,LND-SGL,2020-05-19 09:00:00,2020-05-20 08:00:00,80.0,0,direct,100.0,vn,1,0.0,1.003,1,False +125,2020-05-21 09:28:09,CONFIRMED,,2020-05-21 15:00:00,2020-05-23 08:00:00,135.0,1,direct,140.0,others,1,0.0,,1,True +126,2020-05-21 09:28:18,NOSHOW,,2020-05-21 15:00:00,2020-05-23 08:00:00,135.0,1,direct,140.0,others,1,0.0,,1,True +127,2020-05-21 09:28:49,CHECKEDOUT,,2020-05-21 15:00:00,2020-05-23 08:00:00,160.0,1,direct,215.0,others,1,0.0,,1,True +129,2020-06-02 03:36:51,CANCELED,CENTRI-RFC09,2020-06-02 15:00:00,2020-06-03 08:00:00,87.5,0,direct,145.0,others,1,0.0,R303,1,False +130,2020-06-02 03:45:34,CONFIRMED,,2020-06-02 09:00:00,2020-06-03 08:00:00,80.0,0,direct,100.0,vn,1,0.0,,1,True +133,2020-06-10 04:31:09,CONFIRMED,,2020-06-11 08:00:00,2020-06-13 07:00:00,51.0,1,direct,131.0,gb,1,0.0,,6,True +139,2020-06-10 04:31:10,CONFIRMED,,2020-06-12 08:00:00,2020-06-14 07:00:00,240.0,1,direct,245.0,gb,1,0.0,,6,True +145,2020-06-26 04:24:40,CANCELED,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,3,ibe,492.0,others,1,0.0,,1,True +146,2020-06-26 04:26:18,CANCELED,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,3,ibe,492.0,others,1,0.0,,1,True +147,2020-06-26 04:27:53,CANCELED,CENTRI-RFC10,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,3,ibe,492.0,others,1,0.0,R304,1,True +148,2020-06-26 04:34:23,CANCELED,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,3,ibe,492.0,others,1,0.0,,1,True +149,2020-06-26 04:36:20,CANCELED,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,3,ibe,492.0,others,1,0.0,,1,True +150,2020-06-26 04:37:14,CANCELED,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,3,ibe,492.0,others,1,0.0,,1,True +151,2020-06-26 04:38:26,CANCELED,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,3,ibe,492.0,others,1,0.0,,1,True +152,2020-06-26 04:41:50,CANCELED,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,3,ibe,492.0,others,1,0.0,,1,True +153,2020-06-26 04:43:27,CANCELED,CENTRI-RFC03,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,3,ibe,492.0,others,1,0.0,R104,1,True +154,2020-06-26 06:21:26,CONFIRMED,CENTRI-RFC03,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,3,ibe,492.0,others,1,0.0,R104,1,True +155,2020-06-17 10:14:34,CANCELED,CENTRI-RFC09,2020-07-01 12:00:00,2020-07-03 11:00:00,128.0,1,ibe,128.0,others,2,0.0,R303,2,False +162,2020-06-29 12:58:45,CANCELED,CENTRI-RFC05,2020-07-08 12:00:00,2020-07-09 11:00:00,52.0,0,ibe,62.0,others,1,0.0,R105,1,True +163,2020-07-10 11:39:38,CONFIRMED,GVDTST2-SUITTUB,2020-07-10 11:39:38,2020-07-13 09:00:00,4283.0,2,channelmanager,4633.0,others,1,0.0,PS-3,1,True +183,2020-07-10 11:54:42,CANCELED,GVDTST2-SUITE,2020-08-02 10:01:00,2020-08-03 09:00:00,1275.0,0,channelmanager,1275.0,others,1,0.0,GS-6,1,True +192,2020-07-22 04:25:46,CONFIRMED,CENTRI-RFC10,2020-08-05 12:00:00,2020-08-08 11:00:00,421.0,2,channelmanager,421.0,others,1,0.0,R304,1,True +193,2020-07-22 04:53:06,CONFIRMED,CENTRI-RFC02,2020-08-05 12:00:00,2020-08-08 11:00:00,755.0,2,channelmanager,755.0,others,1,0.0,R102,1,True +194,2020-07-22 04:55:08,CONFIRMED,CENTRI-RFC04,2020-08-05 12:00:00,2020-08-08 11:00:00,814.0,2,channelmanager,814.0,others,1,0.0,R206,1,True +195,2020-07-22 05:14:24,CONFIRMED,CENTRI-RFC06,2020-08-05 12:00:00,2020-08-08 11:00:00,967.0,2,channelmanager,967.0,others,1,0.0,R204,1,True +198,2020-07-13 09:20:27,CONFIRMED,GVDTST2-SUITE,2020-08-11 10:01:00,2020-08-12 09:00:00,1250.0,0,channelmanager,1750.0,others,2,0.0,GS-6,1,True +200,2020-07-01 05:52:27,CANCELED,CENTRI-RFC05,2020-08-12 12:00:00,2020-08-14 11:00:00,170.0,1,ibe,190.0,others,1,0.0,R105,1,True +207,2020-06-24 04:25:28,CANCELED,,2020-08-15 12:00:00,2020-08-17 11:00:00,238.0,1,ibe,238.0,others,2,0.0,,1,True +208,2020-06-24 04:25:28,CANCELED,,2020-08-15 12:00:00,2020-08-17 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +209,2020-06-24 04:25:29,CANCELED,,2020-08-15 12:00:00,2020-08-17 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +211,2020-07-16 07:20:54,CONFIRMED,GVDCT1-BEDROOM,2020-08-19 07:00:00,2020-08-20 17:00:00,2470.0,1,channelmanager,2470.0,others,1,0.0,PS-3,1,True +213,2020-06-24 04:51:32,CANCELED,,2020-08-23 12:00:00,2020-08-25 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +214,2020-06-24 04:51:32,CANCELED,,2020-08-23 12:00:00,2020-08-25 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +215,2020-06-24 04:51:34,CANCELED,,2020-08-23 12:00:00,2020-08-25 11:00:00,238.0,1,ibe,238.0,others,2,0.0,,1,True +220,2020-06-24 04:58:53,CANCELED,,2020-08-26 12:00:00,2020-08-28 11:00:00,238.0,1,ibe,238.0,others,2,0.0,,1,True +221,2020-06-24 04:58:53,CANCELED,,2020-08-26 12:00:00,2020-08-28 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +222,2020-06-24 04:58:54,CANCELED,,2020-08-26 12:00:00,2020-08-28 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +223,2020-06-24 05:01:34,CANCELED,,2020-08-29 12:00:00,2020-08-30 11:00:00,119.0,0,ibe,119.0,others,2,0.0,,1,True +224,2020-06-24 05:01:35,CANCELED,,2020-08-29 12:00:00,2020-08-30 11:00:00,120.0,0,ibe,120.0,others,2,1.0,,1,True +225,2020-06-24 05:01:36,CANCELED,,2020-08-29 12:00:00,2020-08-30 11:00:00,120.0,0,ibe,120.0,others,1,0.0,,1,True +226,2020-06-24 05:04:23,CANCELED,,2020-09-01 12:00:00,2020-09-03 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +227,2020-06-24 05:04:23,CANCELED,,2020-09-01 12:00:00,2020-09-03 11:00:00,238.0,1,ibe,238.0,others,2,0.0,,1,True +228,2020-06-24 05:04:24,CANCELED,,2020-09-01 12:00:00,2020-09-03 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +229,2020-06-24 05:06:53,CANCELED,,2020-09-04 12:00:00,2020-09-05 11:00:00,120.0,0,ibe,120.0,others,2,1.0,,1,True +230,2020-06-24 05:06:54,CANCELED,,2020-09-04 12:00:00,2020-09-05 11:00:00,120.0,0,ibe,120.0,others,1,0.0,,1,True +231,2020-06-24 05:06:54,CANCELED,,2020-09-04 12:00:00,2020-09-05 11:00:00,119.0,0,ibe,119.0,others,2,0.0,,1,True +232,2020-06-24 05:11:50,CANCELED,,2020-09-07 12:00:00,2020-09-09 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +233,2020-06-24 05:11:50,CANCELED,,2020-09-07 12:00:00,2020-09-09 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +234,2020-06-24 05:11:50,CANCELED,,2020-09-07 12:00:00,2020-09-09 11:00:00,238.0,1,ibe,238.0,others,2,0.0,,1,True +237,2020-06-24 05:13:40,CANCELED,,2020-09-11 12:00:00,2020-09-13 11:00:00,238.0,1,ibe,238.0,others,2,0.0,,1,True +238,2020-06-24 05:13:41,CANCELED,,2020-09-11 12:00:00,2020-09-13 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +239,2020-06-24 05:13:41,CANCELED,,2020-09-11 12:00:00,2020-09-13 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +240,2020-06-24 05:24:06,CANCELED,,2020-09-15 12:00:00,2020-09-17 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +241,2020-06-24 05:24:07,CANCELED,,2020-09-15 12:00:00,2020-09-17 11:00:00,238.0,1,ibe,238.0,others,2,0.0,,1,True +242,2020-06-24 05:24:07,CANCELED,,2020-09-15 12:00:00,2020-09-17 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +248,2020-06-24 05:27:41,CANCELED,,2020-09-19 12:00:00,2020-09-21 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +249,2020-06-24 05:27:42,CANCELED,,2020-09-19 12:00:00,2020-09-21 11:00:00,238.0,1,ibe,238.0,others,2,0.0,,1,True +250,2020-06-24 05:27:42,CANCELED,,2020-09-19 12:00:00,2020-09-21 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +251,2020-06-24 05:29:18,CANCELED,,2020-09-23 12:00:00,2020-09-25 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +252,2020-06-24 05:29:19,CANCELED,,2020-09-23 12:00:00,2020-09-25 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +253,2020-06-24 05:29:19,CANCELED,,2020-09-23 12:00:00,2020-09-25 11:00:00,238.0,1,ibe,238.0,others,2,0.0,,1,True +254,2020-06-24 07:18:56,CANCELED,CENTRI-RFC10,2020-09-27 12:00:00,2020-09-29 11:00:00,238.0,1,ibe,238.0,others,2,0.0,R304,1,True +255,2020-06-24 07:18:57,CANCELED,,2020-09-27 12:00:00,2020-09-29 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +256,2020-06-24 07:18:57,CANCELED,,2020-09-27 12:00:00,2020-09-29 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +257,2020-06-24 07:20:15,CANCELED,,2020-10-01 12:00:00,2020-10-03 11:00:00,238.0,1,ibe,238.0,others,2,0.0,,1,True +258,2020-06-24 07:20:16,CANCELED,,2020-10-01 12:00:00,2020-10-03 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +259,2020-06-24 07:20:16,CANCELED,,2020-10-01 12:00:00,2020-10-03 11:00:00,240.0,1,ibe,240.0,others,2,1.0,,1,True +260,2020-06-24 07:49:38,CANCELED,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +261,2020-06-24 07:49:38,CANCELED,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,1,ibe,250.0,others,2,1.0,,1,True +262,2020-06-24 07:49:39,CANCELED,,2020-10-04 12:00:00,2020-10-06 11:00:00,238.0,1,ibe,248.0,others,2,0.0,,1,True +263,2020-06-25 09:10:12,CANCELED,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +264,2020-06-25 09:10:13,CANCELED,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,1,ibe,250.0,others,2,1.0,,1,True +265,2020-06-25 09:10:13,CANCELED,,2020-10-04 12:00:00,2020-10-06 11:00:00,238.0,1,ibe,248.0,others,2,0.0,,1,True +266,2020-06-24 08:09:45,CANCELED,,2020-10-07 12:00:00,2020-10-09 11:00:00,238.0,1,ibe,248.0,others,2,0.0,,1,True +267,2020-06-24 08:09:45,CANCELED,,2020-10-07 12:00:00,2020-10-09 11:00:00,240.0,1,ibe,240.0,others,1,0.0,,1,True +268,2020-06-24 08:09:46,CANCELED,,2020-10-07 12:00:00,2020-10-09 11:00:00,240.0,1,ibe,250.0,others,2,1.0,,1,True +285,2020-07-21 06:45:50,CONFIRMED,GVDTST2-SUITTUB,2020-10-15 10:01:00,2020-10-18 09:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,PS-3,1,True +286,2020-07-21 07:44:47,CONFIRMED,,2020-10-19 10:01:00,2020-10-22 09:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +295,2020-07-21 09:04:27,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +296,2020-07-21 09:11:46,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +297,2020-07-21 09:22:55,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +298,2020-07-21 09:25:07,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +299,2020-07-21 11:01:33,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +300,2020-07-21 11:04:41,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +301,2020-07-21 11:53:02,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +302,2020-07-21 11:55:40,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +303,2020-07-21 11:58:46,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +304,2020-07-21 12:00:14,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +305,2020-07-21 12:08:01,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +306,2020-07-21 12:46:15,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +307,2020-07-21 12:47:12,CONFIRMED,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,2,channelmanager,4335.0,others,1,0.0,,1,True +316,2020-07-22 04:51:14,CONFIRMED,CENTRI-RFC05,2021-01-01 13:00:00,2021-01-04 12:00:00,136.0,2,channelmanager,136.0,others,1,0.0,R201,1,True diff --git a/ai/storage/test-file-id-input/1st_reservation_processed.csv b/ai/storage/test-file-id-input/1st_reservation_processed.csv new file mode 100644 index 0000000..1ef71e8 --- /dev/null +++ b/ai/storage/test-file-id-input/1st_reservation_processed.csv @@ -0,0 +1,203 @@ +GuestID,Country = others,Country = de,Country = gb,Country = vn,RoomNo = 3.001,RoomNo = 3.002,RoomNo = 1.014,RoomNo = R304,RoomNo = G.002,RoomNo = 2.012,RoomNo = 1.015,RoomNo = PS-3,RoomNo = G.009,RoomNo = 2.011,Adults,Children,TotalPayment,Nights,RoomPrice,NumberOfRooms,Channel = direct,Channel = ibe,Channel = channelmanager,Status = CONFIRMED,Status = CANCELED,Status = NOSHOW,Status = CHECKEDOUT,RoomGroupID = MUC-DBL,RoomGroupID = BER-DBL,RoomGroupID = LND-DBL,RoomGroupID = LND-SGL,RoomGroupID = LND-FAMILY,RoomGroupID = MUC-SGL,RoomGroupID = MUC-FAMILY,RoomGroupID = BER-SGL,RoomGroupID = CENTRI-RFC10,RoomGroupID = CENTRI-RFC05,IS_WEEKEND(ArrivalDate),IS_WEEKEND(CreatedDate),IS_WEEKEND(DepartureDate),MONTH(ArrivalDate),MONTH(CreatedDate),MONTH(DepartureDate),QUARTER(ArrivalDate),QUARTER(CreatedDate),QUARTER(DepartureDate),ArrivalDate - CreatedDate,ArrivalDate - DepartureDate,CreatedDate - ArrivalDate,CreatedDate - DepartureDate,DepartureDate - ArrivalDate,DepartureDate - CreatedDate,WEEKDAY(ArrivalDate),WEEKDAY(CreatedDate),WEEKDAY(DepartureDate),is1stVisit +0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,241.0,1.0,221.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.0447800925925925,-1.7083333333333333,-1.0447800925925925,-2.753113425925926,1.7083333333333333,2.753113425925926,1.0,0.0,3.0,True +1,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,386.0,3.0,386.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,1.0448726851851853,-3.7083333333333335,-1.0448726851851853,-4.753206018518519,3.7083333333333335,4.753206018518519,1.0,0.0,5.0,True +2,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,150.0,0.0,120.02,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7947916666666667,-0.9583333333333334,-0.7947916666666667,-1.753125,0.9583333333333334,1.753125,1.0,0.0,2.0,True +3,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,726.0,5.0,701.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7530324074074074,-5.958333333333333,-0.7530324074074074,-6.7113657407407405,5.958333333333333,6.7113657407407405,1.0,0.0,0.0,True +4,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,640.0,3.0,520.08,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7945949074074075,-3.9583333333333335,-0.7945949074074075,-4.752928240740741,3.9583333333333335,4.752928240740741,1.0,0.0,5.0,True +5,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,506.0,5.0,506.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7946875,-5.958333333333333,-0.7946875,-6.753020833333333,5.958333333333333,6.753020833333333,1.0,0.0,0.0,True +6,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,138.0,0.0,123.01,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7530324074074074,-0.9583333333333334,-0.7530324074074074,-1.7113657407407408,0.9583333333333334,1.7113657407407408,1.0,0.0,2.0,True +7,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,1123.0,6.0,913.14,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7943634259259259,-6.958333333333333,-0.7943634259259259,-7.752696759259259,6.958333333333333,7.752696759259259,1.0,0.0,1.0,True +8,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,150.0,0.0,120.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7945833333333333,-0.9583333333333334,-0.7945833333333333,-1.7529166666666667,0.9583333333333334,1.7529166666666667,1.0,0.0,2.0,True +9,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,163.0,1.0,163.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7942939814814814,-1.9583333333333333,-0.7942939814814814,-2.7526273148148146,1.9583333333333333,2.7526273148148146,1.0,0.0,3.0,True +10,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,93.0,0.0,93.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.0442476851851852,-0.7083333333333334,-1.0442476851851852,-1.7525810185185184,0.7083333333333334,1.7525810185185184,1.0,0.0,2.0,True +11,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,78.0,0.0,78.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7526041666666666,-0.9583333333333334,-0.7526041666666666,-1.7109375,0.9583333333333334,1.7109375,1.0,0.0,2.0,True +12,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,118.0,0.0,118.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7942592592592592,-0.9583333333333334,-1.7942592592592592,-2.7525925925925927,0.9583333333333334,2.7525925925925927,2.0,0.0,3.0,True +13,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,88.0,0.0,88.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7950578703703703,-0.9583333333333334,-1.7950578703703703,-2.753391203703704,0.9583333333333334,2.753391203703704,2.0,0.0,3.0,True +14,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,271.0,1.0,231.04,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,2.0449537037037038,-1.7083333333333333,-2.0449537037037038,-3.7532870370370373,1.7083333333333333,3.7532870370370373,2.0,0.0,4.0,True +15,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,681.0,4.0,681.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7947569444444444,-4.958333333333333,-1.7947569444444444,-6.753090277777778,4.958333333333333,6.753090277777778,2.0,0.0,0.0,True +16,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,118.0,0.0,118.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7943055555555556,-0.9583333333333334,-1.7943055555555556,-2.752638888888889,0.9583333333333334,2.752638888888889,2.0,0.0,3.0,True +17,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,172.0,1.0,172.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7944560185185185,-1.9583333333333333,-1.7944560185185185,-3.752789351851852,1.9583333333333333,3.752789351851852,2.0,0.0,4.0,True +18,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,164.0,0.0,134.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7533796296296296,-0.9583333333333334,-1.7533796296296296,-2.711712962962963,0.9583333333333334,2.711712962962963,2.0,0.0,3.0,True +19,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,89.0,0.0,89.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7529861111111111,-0.9583333333333334,-1.7529861111111111,-2.7113194444444444,0.9583333333333334,2.7113194444444444,2.0,0.0,3.0,True +20,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,89.0,0.0,89.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7528240740740741,-0.9583333333333334,-1.7528240740740741,-2.7111574074074074,0.9583333333333334,2.7111574074074074,2.0,0.0,3.0,True +21,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,164.0,0.0,134.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7530439814814816,-0.9583333333333334,-1.7530439814814816,-2.711377314814815,0.9583333333333334,2.711377314814815,2.0,0.0,3.0,True +22,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,93.0,0.0,93.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.044328703703704,-0.7083333333333334,-3.044328703703704,-3.752662037037037,0.7083333333333334,3.752662037037037,3.0,0.0,4.0,True +23,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,262.0,1.0,262.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,2.752615740740741,-1.9583333333333333,-2.752615740740741,-4.710949074074074,1.9583333333333333,4.710949074074074,3.0,0.0,5.0,True +24,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,93.0,0.0,93.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.044722222222222,-0.7083333333333334,-3.044722222222222,-3.7530555555555556,0.7083333333333334,3.7530555555555556,3.0,0.0,4.0,True +25,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,63.0,0.0,63.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.044236111111111,-0.7083333333333334,-3.044236111111111,-3.7525694444444446,0.7083333333333334,3.7525694444444446,3.0,0.0,4.0,True +26,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,237.0,1.0,237.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,2.7950347222222223,-1.9583333333333333,-2.7950347222222223,-4.753368055555556,1.9583333333333333,4.753368055555556,3.0,0.0,5.0,True +27,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,63.0,0.0,63.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.0450347222222223,-0.7083333333333334,-3.0450347222222223,-3.7533680555555557,0.7083333333333334,3.7533680555555557,3.0,0.0,4.0,True +28,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,185.0,1.0,185.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,3.0448263888888887,-1.7083333333333333,-3.0448263888888887,-4.753159722222223,1.7083333333333333,4.753159722222223,3.0,0.0,5.0,True +29,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,159.0,0.0,129.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,2.7948958333333334,-0.9583333333333334,-2.7948958333333334,-3.753229166666667,0.9583333333333334,3.753229166666667,3.0,0.0,4.0,True +30,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,63.0,0.0,63.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.044525462962963,-0.7083333333333334,-3.044525462962963,-3.7528587962962963,0.7083333333333334,3.7528587962962963,3.0,0.0,4.0,True +31,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,394.0,2.0,394.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.7947685185185187,-2.9583333333333335,-3.7947685185185187,-6.753101851851852,2.9583333333333335,6.753101851851852,4.0,0.0,0.0,True +32,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,271.0,4.0,271.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,4.044976851851852,-4.708333333333333,-4.044976851851852,-8.753310185185185,4.708333333333333,8.753310185185185,4.0,0.0,2.0,True +33,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,138.0,0.0,138.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,3.7945717592592594,-0.9583333333333334,-3.7945717592592594,-4.752905092592592,0.9583333333333334,4.752905092592592,4.0,0.0,5.0,True +34,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,740.0,6.0,740.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.794675925925926,-6.958333333333333,-3.794675925925926,-10.75300925925926,6.958333333333333,10.75300925925926,4.0,0.0,4.0,True +35,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,188.0,1.0,188.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,5.0443287037037035,-1.7083333333333333,-5.0443287037037035,-6.752662037037037,1.7083333333333333,6.752662037037037,5.0,0.0,0.0,True +36,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,142.0,0.0,142.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,4.7527083333333335,-0.9583333333333334,-4.7527083333333335,-5.711041666666667,0.9583333333333334,5.711041666666667,5.0,0.0,6.0,True +37,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,489.0,3.0,464.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,4.753217592592593,-3.9583333333333335,-4.753217592592593,-8.711550925925925,3.9583333333333335,8.711550925925925,5.0,0.0,2.0,True +38,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,120.0,0.0,120.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,5.794745370370371,-0.9583333333333334,-5.794745370370371,-6.753078703703704,0.9583333333333334,6.753078703703704,6.0,0.0,0.0,True +39,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,287.0,1.0,257.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,5.7532754629629625,-1.9583333333333333,-5.7532754629629625,-7.7116087962962965,1.9583333333333333,7.7116087962962965,6.0,0.0,1.0,True +40,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,167.0,1.0,167.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,5.752766203703704,-1.9583333333333333,-5.752766203703704,-7.711099537037037,1.9583333333333333,7.711099537037037,6.0,0.0,1.0,True +41,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,120.0,0.0,120.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,5.794502314814815,-0.9583333333333334,-5.794502314814815,-6.752835648148148,0.9583333333333334,6.752835648148148,6.0,0.0,0.0,True +42,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,901.0,6.0,901.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,5.7531944444444445,-6.958333333333333,-5.7531944444444445,-12.711527777777778,6.958333333333333,12.711527777777778,6.0,0.0,6.0,True +43,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,306.0,1.0,306.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,6.794409722222222,-1.9583333333333333,-6.794409722222222,-8.752743055555555,1.9583333333333333,8.752743055555555,0.0,0.0,2.0,True +44,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,97.0,0.0,97.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,6.752881944444445,-0.9583333333333334,-6.752881944444445,-7.711215277777778,0.9583333333333334,7.711215277777778,0.0,0.0,1.0,True +45,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,254.0,1.0,254.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,7.794398148148148,-1.9583333333333333,-7.794398148148148,-9.752731481481481,1.9583333333333333,9.752731481481481,1.0,0.0,3.0,True +46,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,791.0,5.0,766.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,7.753344907407407,-5.958333333333333,-7.753344907407407,-13.71167824074074,5.958333333333333,13.71167824074074,1.0,0.0,0.0,True +47,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,154.0,1.0,154.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,7.794513888888889,-1.9583333333333333,-7.794513888888889,-9.752847222222222,1.9583333333333333,9.752847222222222,1.0,0.0,3.0,True +48,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,244.0,1.0,244.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,7.794537037037037,-1.9583333333333333,-7.794537037037037,-9.75287037037037,1.9583333333333333,9.75287037037037,1.0,0.0,3.0,True +49,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,219.0,1.0,219.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,7.752696759259259,-1.9583333333333333,-7.752696759259259,-9.711030092592592,1.9583333333333333,9.711030092592592,1.0,0.0,3.0,True +50,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,364.0,2.0,304.06,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,9.044513888888888,-2.7083333333333335,-9.044513888888888,-11.752847222222222,2.7083333333333335,11.752847222222222,2.0,0.0,5.0,True +51,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,205.0,1.0,205.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,8.794351851851852,-1.9583333333333333,-8.794351851851852,-10.752685185185186,1.9583333333333333,10.752685185185186,2.0,0.0,4.0,True +52,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,100.0,0.0,100.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,8.794872685185185,-0.9583333333333334,-8.794872685185185,-9.753206018518519,0.9583333333333334,9.753206018518519,2.0,0.0,3.0,True +53,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,150.0,1.0,150.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,8.7528125,-1.9583333333333333,-8.7528125,-10.711145833333333,1.9583333333333333,10.711145833333333,2.0,0.0,4.0,True +54,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,243.0,1.0,243.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,9.75287037037037,-1.9583333333333333,-9.75287037037037,-11.711203703703704,1.9583333333333333,11.711203703703704,3.0,0.0,5.0,True +55,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,121.0,0.0,121.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,9.752893518518519,-0.9583333333333334,-9.752893518518519,-10.711226851851851,0.9583333333333334,10.711226851851851,3.0,0.0,4.0,True +56,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,225.0,2.0,225.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,9.752939814814814,-2.9583333333333335,-9.752939814814814,-12.711273148148148,2.9583333333333335,12.711273148148148,3.0,0.0,6.0,True +57,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,109.0,0.0,109.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,10.04429398148148,-0.7083333333333334,-10.04429398148148,-10.752627314814815,0.7083333333333334,10.752627314814815,3.0,0.0,4.0,True +58,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,177.0,0.0,127.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,10.75335648148148,-0.9583333333333334,-10.75335648148148,-11.711689814814815,0.9583333333333334,11.711689814814815,4.0,0.0,5.0,True +59,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,657.0,4.0,657.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,11.794976851851851,-4.958333333333333,-11.794976851851851,-16.753310185185185,4.958333333333333,16.753310185185185,5.0,0.0,3.0,True +60,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,265.0,1.0,265.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,11.795,-1.9583333333333333,-11.795,-13.753333333333334,1.9583333333333333,13.753333333333334,5.0,0.0,0.0,True +61,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,137.0,0.0,137.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,11.753298611111111,-0.9583333333333334,-11.753298611111111,-12.711631944444445,0.9583333333333334,12.711631944444445,5.0,0.0,6.0,True +62,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,311.0,2.0,311.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,11.794236111111111,-2.9583333333333335,-11.794236111111111,-14.752569444444445,2.9583333333333335,14.752569444444445,5.0,0.0,1.0,True +63,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,137.0,0.0,137.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,11.752731481481481,-0.9583333333333334,-11.752731481481481,-12.711064814814815,0.9583333333333334,12.711064814814815,5.0,0.0,6.0,True +64,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,220.0,1.0,200.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,13.044409722222222,-1.7083333333333333,-13.044409722222222,-14.752743055555555,1.7083333333333333,14.752743055555555,6.0,0.0,1.0,True +65,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,182.0,0.0,132.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,12.75318287037037,-0.9583333333333334,-12.75318287037037,-13.711516203703704,0.9583333333333334,13.711516203703704,6.0,0.0,0.0,True +66,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,136.0,0.0,136.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,13.795046296296297,-0.9583333333333334,-13.795046296296297,-14.75337962962963,0.9583333333333334,14.75337962962963,0.0,0.0,1.0,True +67,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,122.0,0.0,122.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,13.753171296296296,-0.9583333333333334,-13.753171296296296,-14.71150462962963,0.9583333333333334,14.71150462962963,0.0,0.0,1.0,True +68,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,396.0,2.0,336.06,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,14.044733796296295,-2.7083333333333335,-14.044733796296295,-16.75306712962963,2.7083333333333335,16.75306712962963,0.0,0.0,3.0,True +69,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,384.0,2.0,384.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,13.75300925925926,-2.9583333333333335,-13.75300925925926,-16.711342592592594,2.9583333333333335,16.711342592592594,0.0,0.0,3.0,True +70,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,322.0,1.0,262.04,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,14.753333333333334,-1.9583333333333333,-14.753333333333334,-16.711666666666666,1.9583333333333333,16.711666666666666,1.0,0.0,3.0,True +71,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,508.0,3.0,508.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,15.753263888888888,-3.9583333333333335,-15.753263888888888,-19.711597222222224,3.9583333333333335,19.711597222222224,2.0,0.0,6.0,True +72,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,343.0,2.0,343.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,15.752997685185186,-2.9583333333333335,-15.752997685185186,-18.711331018518518,2.9583333333333335,18.711331018518518,2.0,0.0,5.0,True +73,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,764.0,5.0,644.12,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,17.044618055555556,-5.708333333333333,-17.044618055555556,-22.75295138888889,5.708333333333333,22.75295138888889,3.0,0.0,2.0,True +74,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,325.0,2.0,325.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,16.752754629629628,-2.9583333333333335,-16.752754629629628,-19.711087962962964,2.9583333333333335,19.711087962962964,3.0,0.0,6.0,True +75,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,100.0,0.0,100.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,18.79480324074074,-0.9583333333333334,-18.79480324074074,-19.753136574074073,0.9583333333333334,19.753136574074073,5.0,0.0,6.0,True +76,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,175.0,0.0,125.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,18.752974537037037,-0.9583333333333334,-18.752974537037037,-19.71130787037037,0.9583333333333334,19.71130787037037,5.0,0.0,6.0,True +77,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,130.0,0.0,110.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,20.044444444444444,-0.7083333333333334,-20.044444444444444,-20.752777777777776,0.7083333333333334,20.752777777777776,6.0,0.0,0.0,True +78,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,112.0,1.0,112.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,20.04491898148148,-1.7083333333333333,-20.04491898148148,-21.753252314814816,1.7083333333333333,21.753252314814816,6.0,0.0,1.0,True +79,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,96.0,0.0,96.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,19.794780092592593,-0.9583333333333334,-19.794780092592593,-20.753113425925925,0.9583333333333334,20.753113425925925,6.0,0.0,0.0,True +80,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,317.0,1.0,257.04,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,9.0,3.0,3.0,3.0,24.75306712962963,-1.9583333333333333,-24.75306712962963,-26.711400462962963,1.9583333333333333,26.711400462962963,4.0,0.0,6.0,True +81,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,352.0,2.0,352.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,9.0,3.0,3.0,3.0,24.794988425925926,-2.9583333333333335,-24.794988425925926,-27.753321759259258,2.9583333333333335,27.753321759259258,4.0,0.0,0.0,True +82,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,253.0,1.0,253.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,29.044340277777778,-1.7083333333333333,-29.044340277777778,-30.75267361111111,1.7083333333333333,30.75267361111111,1.0,0.0,3.0,True +83,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,563.0,3.0,503.04,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,8.0,9.0,3.0,3.0,3.0,29.753055555555555,-3.9583333333333335,-29.753055555555555,-33.71138888888889,3.9583333333333335,33.71138888888889,2.0,0.0,6.0,True +84,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,250.0,1.0,250.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,29.79482638888889,-1.9583333333333333,-29.79482638888889,-31.75315972222222,1.9583333333333333,31.75315972222222,2.0,0.0,4.0,True +85,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,466.0,3.0,466.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,33.04431712962963,-3.7083333333333335,-33.04431712962963,-36.75265046296296,3.7083333333333335,36.75265046296296,5.0,0.0,2.0,True +86,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,250.0,1.0,250.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,32.752604166666664,-1.9583333333333333,-32.752604166666664,-34.7109375,1.9583333333333333,34.7109375,5.0,0.0,0.0,True +87,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,155.0,0.0,155.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,33.79460648148148,-0.9583333333333334,-33.79460648148148,-34.752939814814816,0.9583333333333334,34.752939814814816,6.0,0.0,0.0,False +88,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,976.0,5.0,926.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,42.75263888888889,-5.958333333333333,-42.75263888888889,-48.710972222222225,5.958333333333333,48.710972222222225,1.0,0.0,0.0,True +89,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,147.0,0.0,147.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,47.79488425925926,-0.9583333333333334,-47.79488425925926,-48.75321759259259,0.9583333333333334,48.75321759259259,6.0,0.0,0.0,True +90,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,91.0,0.0,91.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,49.794259259259256,-0.9583333333333334,-49.794259259259256,-50.75259259259259,0.9583333333333334,50.75259259259259,1.0,0.0,2.0,True +91,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,235.0,0.0,130.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,9.0,9.0,3.0,3.0,3.0,-0.0013541666666666667,-0.7638888888888888,0.0013541666666666667,-0.7625347222222222,0.7638888888888888,0.7625347222222222,2.0,2.0,3.0,True +92,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,671.0,3.0,551.08,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,8.0,10.0,4.0,3.0,4.0,58.79480324074074,-3.9583333333333335,-58.79480324074074,-62.75313657407408,3.9583333333333335,62.75313657407408,3.0,0.0,0.0,True +93,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,85.0,0.0,85.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,8.0,10.0,4.0,3.0,4.0,61.75328703703704,-0.9583333333333334,-61.75328703703704,-62.71162037037037,0.9583333333333334,62.71162037037037,6.0,0.0,0.0,True +94,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,356.0,1.0,306.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,8.0,10.0,4.0,3.0,4.0,76.75270833333333,-1.9583333333333333,-76.75270833333333,-78.71104166666667,1.9583333333333333,78.71104166666667,0.0,0.0,2.0,True +95,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,273.0,2.0,273.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,8.0,10.0,4.0,3.0,4.0,81.75314814814814,-2.0,-81.75314814814814,-83.75314814814814,2.0,83.75314814814814,5.0,0.0,0.0,True +96,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,160.0,0.0,160.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,8.0,11.0,4.0,3.0,4.0,92.83598379629629,-0.9583333333333334,-92.83598379629629,-93.79431712962963,0.9583333333333334,93.79431712962963,2.0,0.0,3.0,True +97,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,145.0,0.0,145.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,8.0,11.0,4.0,3.0,4.0,92.83608796296296,-0.9583333333333334,-92.83608796296296,-93.79442129629629,0.9583333333333334,93.79442129629629,2.0,0.0,3.0,True +98,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,76.0,0.0,76.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,11.0,8.0,11.0,4.0,3.0,4.0,95.0862962962963,-0.7083333333333334,-95.0862962962963,-95.79462962962963,0.7083333333333334,95.79462962962963,4.0,0.0,5.0,True +99,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,93.0,0.0,93.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,11.0,8.0,11.0,4.0,3.0,4.0,109.08657407407408,-0.7083333333333334,-109.08657407407408,-109.79490740740741,0.7083333333333334,109.79490740740741,4.0,0.0,5.0,True +100,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,245.0,2.0,245.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12.0,8.0,12.0,4.0,3.0,4.0,143.83613425925927,-2.9583333333333335,-143.83613425925927,-146.79446759259258,2.9583333333333335,146.79446759259258,4.0,0.0,0.0,True +101,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,85.0,0.0,85.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.023506944444444445,-0.9583333333333334,-0.023506944444444445,-0.9818402777777778,0.9583333333333334,0.9818402777777778,4.0,4.0,5.0,True +102,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,102.0,0.0,102.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,0.21157407407407408,-0.9583333333333334,-0.21157407407407408,-1.1699074074074074,0.9583333333333334,1.1699074074074074,1.0,1.0,2.0,True +103,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,2.0,1.0,1.0,1.0,0.3709027777777778,-0.7083333333333334,-0.3709027777777778,-1.079236111111111,0.7083333333333334,1.079236111111111,3.0,3.0,4.0,True +104,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,780.0,2.0,675.06,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,2.0,3.0,1.0,1.0,1.0,9.056689814814815,-2.9583333333333335,-9.056689814814815,-12.015023148148147,2.9583333333333335,12.015023148148147,5.0,3.0,1.0,False +105,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,245.0,0.0,245.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,2.0,2.0,3.0,1.0,1.0,1.0,9.02130787037037,-0.9583333333333334,-9.02130787037037,-9.979641203703704,0.9583333333333334,9.979641203703704,5.0,3.0,6.0,True +107,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,189.98,1.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3.0,3.0,3.0,1.0,1.0,1.0,-0.002685185185185185,-1.1923611111111112,0.002685185185185185,-1.189675925925926,1.1923611111111112,1.189675925925926,3.0,3.0,4.0,False +112,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,530.0,5.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,5.0,5.0,2.0,2.0,2.0,-0.0016435185185185185,-5.025,0.0016435185185185185,-5.023356481481481,5.025,5.023356481481481,3.0,3.0,1.0,False +114,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,5.0,5.0,2.0,2.0,2.0,-0.0006365740740740741,-1.0319444444444446,0.0006365740740740741,-1.0313078703703704,1.0319444444444446,1.0313078703703704,3.0,3.0,4.0,False +122,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,100.0,0.0,80.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,5.0,5.0,2.0,2.0,2.0,0.1870023148148148,-0.9583333333333334,-0.1870023148148148,-1.1453356481481483,0.9583333333333334,1.1453356481481483,1.0,1.0,2.0,False +125,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,140.0,1.0,135.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,5.0,5.0,5.0,2.0,2.0,2.0,0.2304513888888889,-1.7083333333333333,-0.2304513888888889,-1.9387847222222223,1.7083333333333333,1.9387847222222223,3.0,3.0,5.0,True +126,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,140.0,1.0,135.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,5.0,5.0,5.0,2.0,2.0,2.0,0.23034722222222223,-1.7083333333333333,-0.23034722222222223,-1.9386805555555555,1.7083333333333333,1.9386805555555555,3.0,3.0,5.0,True +127,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,215.0,1.0,160.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,5.0,5.0,5.0,2.0,2.0,2.0,0.22998842592592592,-1.7083333333333333,-0.22998842592592592,-1.9383217592592592,1.7083333333333333,1.9383217592592592,3.0,3.0,5.0,True +129,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,145.0,0.0,87.5,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,6.0,6.0,2.0,2.0,2.0,0.4744097222222222,-0.7083333333333334,-0.4744097222222222,-1.1827430555555556,0.7083333333333334,1.1827430555555556,1.0,1.0,2.0,False +130,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,100.0,0.0,80.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,6.0,6.0,2.0,2.0,2.0,0.21835648148148148,-0.9583333333333334,-0.21835648148148148,-1.1766898148148148,0.9583333333333334,1.1766898148148148,1.0,1.0,2.0,True +133,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,131.0,1.0,51.0,6.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,6.0,2.0,2.0,2.0,1.1450347222222221,-1.9583333333333333,-1.1450347222222221,-3.1033680555555554,1.9583333333333333,3.1033680555555554,3.0,2.0,5.0,True +139,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,245.0,1.0,240.0,6.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,6.0,2.0,2.0,2.0,2.145023148148148,-1.9583333333333333,-2.145023148148148,-4.103356481481481,1.9583333333333333,4.103356481481481,4.0,2.0,6.0,True +145,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.316203703703704,-3.9583333333333335,-4.316203703703704,-8.274537037037037,3.9583333333333335,8.274537037037037,1.0,4.0,5.0,True +146,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.315069444444444,-3.9583333333333335,-4.315069444444444,-8.273402777777777,3.9583333333333335,8.273402777777777,1.0,4.0,5.0,True +147,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.313969907407407,-3.9583333333333335,-4.313969907407407,-8.27230324074074,3.9583333333333335,8.27230324074074,1.0,4.0,5.0,True +148,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.309456018518518,-3.9583333333333335,-4.309456018518518,-8.267789351851851,3.9583333333333335,8.267789351851851,1.0,4.0,5.0,True +149,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.308101851851852,-3.9583333333333335,-4.308101851851852,-8.266435185185186,3.9583333333333335,8.266435185185186,1.0,4.0,5.0,True +150,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.307476851851852,-3.9583333333333335,-4.307476851851852,-8.265810185185185,3.9583333333333335,8.265810185185185,1.0,4.0,5.0,True +151,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.306643518518518,-3.9583333333333335,-4.306643518518518,-8.264976851851852,3.9583333333333335,8.264976851851852,1.0,4.0,5.0,True +152,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.304282407407407,-3.9583333333333335,-4.304282407407407,-8.26261574074074,3.9583333333333335,8.26261574074074,1.0,4.0,5.0,True +153,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.303159722222222,-3.9583333333333335,-4.303159722222222,-8.261493055555556,3.9583333333333335,8.261493055555556,1.0,4.0,5.0,True +154,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.235115740740741,-3.9583333333333335,-4.235115740740741,-8.193449074074074,3.9583333333333335,8.193449074074074,1.0,4.0,5.0,True +155,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,128.0,1.0,128.0,2.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,6.0,7.0,3.0,2.0,3.0,14.073217592592593,-1.9583333333333333,-14.073217592592593,-16.031550925925927,1.9583333333333333,16.031550925925927,2.0,2.0,4.0,False +162,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,62.0,0.0,52.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,7.0,6.0,7.0,3.0,2.0,3.0,8.95920138888889,-0.9583333333333334,-8.95920138888889,-9.917534722222221,0.9583333333333334,9.917534722222221,2.0,0.0,3.0,True +163,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,4633.0,2.0,4283.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,7.0,7.0,3.0,3.0,3.0,0.0,-2.8891435185185186,0.0,-2.8891435185185186,2.8891435185185186,2.8891435185185186,4.0,4.0,0.0,True +183,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1275.0,0.0,1275.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,7.0,8.0,3.0,3.0,3.0,22.921041666666667,-0.9576388888888889,-22.921041666666667,-23.878680555555555,0.9576388888888889,23.878680555555555,6.0,4.0,0.0,True +192,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,421.0,2.0,421.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,8.0,7.0,8.0,3.0,3.0,3.0,14.315439814814814,-2.9583333333333335,-14.315439814814814,-17.27377314814815,2.9583333333333335,17.27377314814815,2.0,2.0,5.0,True +193,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,755.0,2.0,755.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,7.0,8.0,3.0,3.0,3.0,14.296458333333334,-2.9583333333333335,-14.296458333333334,-17.254791666666666,2.9583333333333335,17.254791666666666,2.0,2.0,5.0,True +194,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,814.0,2.0,814.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,7.0,8.0,3.0,3.0,3.0,14.295046296296297,-2.9583333333333335,-14.295046296296297,-17.25337962962963,2.9583333333333335,17.25337962962963,2.0,2.0,5.0,True +195,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,967.0,2.0,967.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,7.0,8.0,3.0,3.0,3.0,14.281666666666666,-2.9583333333333335,-14.281666666666666,-17.24,2.9583333333333335,17.24,2.0,2.0,5.0,True +198,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,1750.0,0.0,1250.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,7.0,8.0,3.0,3.0,3.0,29.028159722222224,-0.9576388888888889,-29.028159722222224,-29.98579861111111,0.9576388888888889,29.98579861111111,1.0,0.0,2.0,True +200,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,190.0,1.0,170.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,8.0,7.0,8.0,3.0,3.0,3.0,42.25524305555555,-1.9583333333333333,-42.25524305555555,-44.21357638888889,1.9583333333333333,44.21357638888889,2.0,2.0,4.0,True +207,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,52.31564814814815,-1.9583333333333333,-52.31564814814815,-54.273981481481485,1.9583333333333333,54.273981481481485,5.0,2.0,0.0,True +208,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,52.31564814814815,-1.9583333333333333,-52.31564814814815,-54.273981481481485,1.9583333333333333,54.273981481481485,5.0,2.0,0.0,True +209,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,52.31563657407408,-1.9583333333333333,-52.31563657407408,-54.273969907407405,1.9583333333333333,54.273969907407405,5.0,2.0,0.0,True +211,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,2470.0,1.0,2470.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,7.0,8.0,3.0,3.0,3.0,33.98548611111111,-1.4166666666666667,-33.98548611111111,-35.40215277777778,1.4166666666666667,35.40215277777778,2.0,3.0,3.0,True +213,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,60.2975462962963,-1.9583333333333333,-60.2975462962963,-62.25587962962963,1.9583333333333333,62.25587962962963,6.0,2.0,1.0,True +214,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,60.2975462962963,-1.9583333333333333,-60.2975462962963,-62.25587962962963,1.9583333333333333,62.25587962962963,6.0,2.0,1.0,True +215,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,60.29752314814815,-1.9583333333333333,-60.29752314814815,-62.25585648148148,1.9583333333333333,62.25585648148148,6.0,2.0,1.0,True +220,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,63.29244212962963,-1.9583333333333333,-63.29244212962963,-65.25077546296296,1.9583333333333333,65.25077546296296,2.0,2.0,4.0,True +221,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,63.29244212962963,-1.9583333333333333,-63.29244212962963,-65.25077546296296,1.9583333333333333,65.25077546296296,2.0,2.0,4.0,True +222,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,63.292430555555555,-1.9583333333333333,-63.292430555555555,-65.25076388888888,1.9583333333333333,65.25076388888888,2.0,2.0,4.0,True +223,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,119.0,0.0,119.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,6.0,8.0,3.0,2.0,3.0,66.2905787037037,-0.9583333333333334,-66.2905787037037,-67.24891203703703,0.9583333333333334,67.24891203703703,5.0,2.0,6.0,True +224,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,120.0,0.0,120.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,6.0,8.0,3.0,2.0,3.0,66.29056712962964,-0.9583333333333334,-66.29056712962964,-67.24890046296296,0.9583333333333334,67.24890046296296,5.0,2.0,6.0,True +225,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,120.0,0.0,120.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,6.0,8.0,3.0,2.0,3.0,66.29055555555556,-0.9583333333333334,-66.29055555555556,-67.24888888888889,0.9583333333333334,67.24888888888889,5.0,2.0,6.0,True +226,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,69.28862268518519,-1.9583333333333333,-69.28862268518519,-71.24695601851852,1.9583333333333333,71.24695601851852,1.0,2.0,3.0,True +227,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,69.28862268518519,-1.9583333333333333,-69.28862268518519,-71.24695601851852,1.9583333333333333,71.24695601851852,1.0,2.0,3.0,True +228,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,69.28861111111111,-1.9583333333333333,-69.28861111111111,-71.24694444444444,1.9583333333333333,71.24694444444444,1.0,2.0,3.0,True +229,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,120.0,0.0,120.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,72.28688657407407,-0.9583333333333334,-72.28688657407407,-73.2452199074074,0.9583333333333334,73.2452199074074,4.0,2.0,5.0,True +230,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,120.0,0.0,120.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,72.286875,-0.9583333333333334,-72.286875,-73.24520833333334,0.9583333333333334,73.24520833333334,4.0,2.0,5.0,True +231,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,119.0,0.0,119.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,72.286875,-0.9583333333333334,-72.286875,-73.24520833333334,0.9583333333333334,73.24520833333334,4.0,2.0,5.0,True +232,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,75.28344907407407,-1.9583333333333333,-75.28344907407407,-77.24178240740741,1.9583333333333333,77.24178240740741,0.0,2.0,2.0,True +233,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,75.28344907407407,-1.9583333333333333,-75.28344907407407,-77.24178240740741,1.9583333333333333,77.24178240740741,0.0,2.0,2.0,True +234,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,75.28344907407407,-1.9583333333333333,-75.28344907407407,-77.24178240740741,1.9583333333333333,77.24178240740741,0.0,2.0,2.0,True +237,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,79.28217592592593,-1.9583333333333333,-79.28217592592593,-81.24050925925926,1.9583333333333333,81.24050925925926,4.0,2.0,6.0,True +238,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,79.28216435185185,-1.9583333333333333,-79.28216435185185,-81.24049768518519,1.9583333333333333,81.24049768518519,4.0,2.0,6.0,True +239,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,79.28216435185185,-1.9583333333333333,-79.28216435185185,-81.24049768518519,1.9583333333333333,81.24049768518519,4.0,2.0,6.0,True +240,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,83.27493055555556,-1.9583333333333333,-83.27493055555556,-85.23326388888889,1.9583333333333333,85.23326388888889,1.0,2.0,3.0,True +241,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,83.27491898148148,-1.9583333333333333,-83.27491898148148,-85.23325231481482,1.9583333333333333,85.23325231481482,1.0,2.0,3.0,True +242,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,83.27491898148148,-1.9583333333333333,-83.27491898148148,-85.23325231481482,1.9583333333333333,85.23325231481482,1.0,2.0,3.0,True +248,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,87.27244212962962,-1.9583333333333333,-87.27244212962962,-89.23077546296297,1.9583333333333333,89.23077546296297,5.0,2.0,0.0,True +249,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,87.27243055555556,-1.9583333333333333,-87.27243055555556,-89.23076388888889,1.9583333333333333,89.23076388888889,5.0,2.0,0.0,True +250,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,87.27243055555556,-1.9583333333333333,-87.27243055555556,-89.23076388888889,1.9583333333333333,89.23076388888889,5.0,2.0,0.0,True +251,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,91.27131944444444,-1.9583333333333333,-91.27131944444444,-93.22965277777777,1.9583333333333333,93.22965277777777,2.0,2.0,4.0,True +252,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,91.27130787037036,-1.9583333333333333,-91.27130787037036,-93.22964120370371,1.9583333333333333,93.22964120370371,2.0,2.0,4.0,True +253,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,91.27130787037036,-1.9583333333333333,-91.27130787037036,-93.22964120370371,1.9583333333333333,93.22964120370371,2.0,2.0,4.0,True +254,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,95.19518518518518,-1.9583333333333333,-95.19518518518518,-97.15351851851852,1.9583333333333333,97.15351851851852,6.0,2.0,1.0,True +255,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,95.19517361111112,-1.9583333333333333,-95.19517361111112,-97.15350694444444,1.9583333333333333,97.15350694444444,6.0,2.0,1.0,True +256,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,95.19517361111112,-1.9583333333333333,-95.19517361111112,-97.15350694444444,1.9583333333333333,97.15350694444444,6.0,2.0,1.0,True +257,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,10.0,6.0,10.0,4.0,2.0,4.0,99.19427083333333,-1.9583333333333333,-99.19427083333333,-101.15260416666666,1.9583333333333333,101.15260416666666,3.0,2.0,5.0,True +258,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,10.0,6.0,10.0,4.0,2.0,4.0,99.19425925925925,-1.9583333333333333,-99.19425925925925,-101.1525925925926,1.9583333333333333,101.1525925925926,3.0,2.0,5.0,True +259,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,10.0,6.0,10.0,4.0,2.0,4.0,99.19425925925925,-1.9583333333333333,-99.19425925925925,-101.1525925925926,1.9583333333333333,101.1525925925926,3.0,2.0,5.0,True +260,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,102.17386574074074,-1.9583333333333333,-102.17386574074074,-104.13219907407408,1.9583333333333333,104.13219907407408,6.0,2.0,1.0,True +261,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,250.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,102.17386574074074,-1.9583333333333333,-102.17386574074074,-104.13219907407408,1.9583333333333333,104.13219907407408,6.0,2.0,1.0,True +262,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,248.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,102.17385416666667,-1.9583333333333333,-102.17385416666667,-104.1321875,1.9583333333333333,104.1321875,6.0,2.0,1.0,True +263,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,101.11791666666667,-1.9583333333333333,-101.11791666666667,-103.07625,1.9583333333333333,103.07625,6.0,3.0,1.0,True +264,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,250.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,101.1179050925926,-1.9583333333333333,-101.1179050925926,-103.07623842592592,1.9583333333333333,103.07623842592592,6.0,3.0,1.0,True +265,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,248.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,101.1179050925926,-1.9583333333333333,-101.1179050925926,-103.07623842592592,1.9583333333333333,103.07623842592592,6.0,3.0,1.0,True +266,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,248.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,105.15989583333334,-1.9583333333333333,-105.15989583333334,-107.11822916666667,1.9583333333333333,107.11822916666667,2.0,2.0,4.0,True +267,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,105.15989583333334,-1.9583333333333333,-105.15989583333334,-107.11822916666667,1.9583333333333333,107.11822916666667,2.0,2.0,4.0,True +268,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,250.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,105.15988425925926,-1.9583333333333333,-105.15988425925926,-107.11821759259259,1.9583333333333333,107.11821759259259,2.0,2.0,4.0,True +285,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,10.0,7.0,10.0,4.0,3.0,4.0,86.13553240740741,-2.957638888888889,-86.13553240740741,-89.09317129629629,2.957638888888889,89.09317129629629,3.0,1.0,6.0,True +286,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,7.0,10.0,4.0,3.0,4.0,90.09459490740741,-2.957638888888889,-90.09459490740741,-93.05223379629629,2.957638888888889,93.05223379629629,0.0,1.0,3.0,True +295,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,111.0809375,-2.957638888888889,-111.0809375,-114.03857638888888,2.957638888888889,114.03857638888888,0.0,1.0,3.0,True +296,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,111.07585648148148,-2.957638888888889,-111.07585648148148,-114.03349537037037,2.957638888888889,114.03349537037037,0.0,1.0,3.0,True +297,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,111.06811342592593,-2.957638888888889,-111.06811342592593,-114.02575231481481,2.957638888888889,114.02575231481481,0.0,1.0,3.0,True +298,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,111.06658564814815,-2.957638888888889,-111.06658564814815,-114.02422453703704,2.957638888888889,114.02422453703704,0.0,1.0,3.0,True +299,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.99961805555556,-2.957638888888889,-110.99961805555556,-113.95725694444444,2.957638888888889,113.95725694444444,0.0,1.0,3.0,True +300,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.99744212962963,-2.957638888888889,-110.99744212962963,-113.95508101851851,2.957638888888889,113.95508101851851,0.0,1.0,3.0,True +301,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.96386574074074,-2.957638888888889,-110.96386574074074,-113.92150462962962,2.957638888888889,113.92150462962962,0.0,1.0,3.0,True +302,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.96203703703704,-2.957638888888889,-110.96203703703704,-113.91967592592593,2.957638888888889,113.91967592592593,0.0,1.0,3.0,True +303,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.95988425925925,-2.957638888888889,-110.95988425925925,-113.91752314814815,2.957638888888889,113.91752314814815,0.0,1.0,3.0,True +304,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.95886574074073,-2.957638888888889,-110.95886574074073,-113.91650462962963,2.957638888888889,113.91650462962963,0.0,1.0,3.0,True +305,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.95346064814815,-2.957638888888889,-110.95346064814815,-113.91109953703703,2.957638888888889,113.91109953703703,0.0,1.0,3.0,True +306,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.92690972222222,-2.957638888888889,-110.92690972222222,-113.88454861111111,2.957638888888889,113.88454861111111,0.0,1.0,3.0,True +307,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.92625,-2.957638888888889,-110.92625,-113.88388888888889,2.957638888888889,113.88388888888889,0.0,1.0,3.0,True +316,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,136.0,2.0,136.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,7.0,1.0,1.0,3.0,1.0,163.3394212962963,-2.9583333333333335,-163.3394212962963,-166.29775462962962,2.9583333333333335,166.29775462962962,4.0,2.0,0.0,True diff --git a/ai/storage/test-file-id-input/DBSCAN_output.csv b/ai/storage/test-file-id-input/DBSCAN_output.csv new file mode 100644 index 0000000..a5e7fa4 --- /dev/null +++ b/ai/storage/test-file-id-input/DBSCAN_output.csv @@ -0,0 +1,203 @@ +GuestID,Country = others,Country = de,Country = gb,Country = vn,RoomNo = 3.001,RoomNo = 3.002,RoomNo = 1.014,RoomNo = R304,RoomNo = G.002,RoomNo = 2.012,RoomNo = 1.015,RoomNo = PS-3,RoomNo = G.009,RoomNo = 2.011,Adults,Children,TotalPayment,Nights,RoomPrice,NumberOfRooms,Channel = direct,Channel = ibe,Channel = channelmanager,Status = CONFIRMED,Status = CANCELED,Status = NOSHOW,Status = CHECKEDOUT,RoomGroupID = MUC-DBL,RoomGroupID = BER-DBL,RoomGroupID = LND-DBL,RoomGroupID = LND-SGL,RoomGroupID = LND-FAMILY,RoomGroupID = MUC-SGL,RoomGroupID = MUC-FAMILY,RoomGroupID = BER-SGL,RoomGroupID = CENTRI-RFC10,RoomGroupID = CENTRI-RFC05,IS_WEEKEND(ArrivalDate),IS_WEEKEND(CreatedDate),IS_WEEKEND(DepartureDate),MONTH(ArrivalDate),MONTH(CreatedDate),MONTH(DepartureDate),QUARTER(ArrivalDate),QUARTER(CreatedDate),QUARTER(DepartureDate),ArrivalDate - CreatedDate,ArrivalDate - DepartureDate,CreatedDate - ArrivalDate,CreatedDate - DepartureDate,DepartureDate - ArrivalDate,DepartureDate - CreatedDate,WEEKDAY(ArrivalDate),WEEKDAY(CreatedDate),WEEKDAY(DepartureDate),is1stVisit,LTV_Class,cluster_group +0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,241.0,1.0,221.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.0447800925925923,-1.7083333333333333,-1.0447800925925923,-2.753113425925926,1.7083333333333333,2.753113425925926,1.0,0.0,3.0,True,,0.0 +1,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,386.0,3.0,386.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,1.0448726851851853,-3.7083333333333335,-1.0448726851851853,-4.753206018518519,3.7083333333333335,4.753206018518519,1.0,0.0,5.0,True,,-1.0 +2,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,150.0,0.0,120.02,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7947916666666667,-0.9583333333333334,-0.7947916666666667,-1.753125,0.9583333333333334,1.753125,1.0,0.0,2.0,True,,-1.0 +3,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,726.0,5.0,701.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7530324074074074,-5.958333333333332,-0.7530324074074074,-6.7113657407407405,5.958333333333332,6.7113657407407405,1.0,0.0,0.0,True,,-1.0 +4,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,640.0,3.0,520.08,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7945949074074075,-3.9583333333333335,-0.7945949074074075,-4.752928240740742,3.9583333333333335,4.752928240740742,1.0,0.0,5.0,True,,-1.0 +5,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,506.0,5.0,506.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7946875,-5.958333333333332,-0.7946875,-6.753020833333332,5.958333333333332,6.753020833333332,1.0,0.0,0.0,True,,-1.0 +6,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,138.0,0.0,123.01,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7530324074074074,-0.9583333333333334,-0.7530324074074074,-1.7113657407407408,0.9583333333333334,1.7113657407407408,1.0,0.0,2.0,True,,-1.0 +7,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,1123.0,6.0,913.14,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7943634259259259,-6.958333333333332,-0.7943634259259259,-7.752696759259258,6.958333333333332,7.752696759259258,1.0,0.0,1.0,True,,-1.0 +8,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,150.0,0.0,120.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7945833333333333,-0.9583333333333334,-0.7945833333333333,-1.752916666666667,0.9583333333333334,1.752916666666667,1.0,0.0,2.0,True,,-1.0 +9,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,163.0,1.0,163.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7942939814814814,-1.9583333333333333,-0.7942939814814814,-2.7526273148148146,1.9583333333333333,2.7526273148148146,1.0,0.0,3.0,True,,-1.0 +10,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,93.0,0.0,93.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.0442476851851852,-0.7083333333333334,-1.0442476851851852,-1.7525810185185184,0.7083333333333334,1.7525810185185184,1.0,0.0,2.0,True,,-1.0 +11,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,78.0,0.0,78.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,0.7526041666666666,-0.9583333333333334,-0.7526041666666666,-1.7109375,0.9583333333333334,1.7109375,1.0,0.0,2.0,True,,1.0 +12,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,118.0,0.0,118.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7942592592592592,-0.9583333333333334,-1.7942592592592592,-2.7525925925925927,0.9583333333333334,2.7525925925925927,2.0,0.0,3.0,True,,2.0 +13,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,88.0,0.0,88.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7950578703703703,-0.9583333333333334,-1.7950578703703703,-2.753391203703704,0.9583333333333334,2.753391203703704,2.0,0.0,3.0,True,,-1.0 +14,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,271.0,1.0,231.04,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,2.044953703703704,-1.7083333333333333,-2.044953703703704,-3.753287037037037,1.7083333333333333,3.753287037037037,2.0,0.0,4.0,True,,3.0 +15,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,681.0,4.0,681.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7947569444444444,-4.958333333333333,-1.7947569444444444,-6.753090277777778,4.958333333333333,6.753090277777778,2.0,0.0,0.0,True,,-1.0 +16,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,118.0,0.0,118.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7943055555555556,-0.9583333333333334,-1.7943055555555556,-2.752638888888889,0.9583333333333334,2.752638888888889,2.0,0.0,3.0,True,,2.0 +17,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,172.0,1.0,172.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7944560185185183,-1.9583333333333333,-1.7944560185185183,-3.752789351851852,1.9583333333333333,3.752789351851852,2.0,0.0,4.0,True,,4.0 +18,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,164.0,0.0,134.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7533796296296296,-0.9583333333333334,-1.7533796296296296,-2.711712962962963,0.9583333333333334,2.711712962962963,2.0,0.0,3.0,True,,-1.0 +19,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,89.0,0.0,89.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7529861111111111,-0.9583333333333334,-1.7529861111111111,-2.7113194444444444,0.9583333333333334,2.7113194444444444,2.0,0.0,3.0,True,,1.0 +20,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,89.0,0.0,89.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.752824074074074,-0.9583333333333334,-1.752824074074074,-2.7111574074074074,0.9583333333333334,2.7111574074074074,2.0,0.0,3.0,True,,-1.0 +21,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,164.0,0.0,134.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,1.7530439814814816,-0.9583333333333334,-1.7530439814814816,-2.711377314814815,0.9583333333333334,2.711377314814815,2.0,0.0,3.0,True,,-1.0 +22,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,93.0,0.0,93.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.044328703703704,-0.7083333333333334,-3.044328703703704,-3.752662037037037,0.7083333333333334,3.752662037037037,3.0,0.0,4.0,True,,0.0 +23,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,262.0,1.0,262.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,2.752615740740741,-1.9583333333333333,-2.752615740740741,-4.710949074074074,1.9583333333333333,4.710949074074074,3.0,0.0,5.0,True,,5.0 +24,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,93.0,0.0,93.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.0447222222222217,-0.7083333333333334,-3.0447222222222217,-3.753055555555556,0.7083333333333334,3.753055555555556,3.0,0.0,4.0,True,,0.0 +25,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,63.0,0.0,63.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.044236111111111,-0.7083333333333334,-3.044236111111111,-3.7525694444444446,0.7083333333333334,3.7525694444444446,3.0,0.0,4.0,True,,6.0 +26,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,237.0,1.0,237.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,2.7950347222222223,-1.9583333333333333,-2.7950347222222223,-4.753368055555557,1.9583333333333333,4.753368055555557,3.0,0.0,5.0,True,,-1.0 +27,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,63.0,0.0,63.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.0450347222222223,-0.7083333333333334,-3.0450347222222223,-3.753368055555556,0.7083333333333334,3.753368055555556,3.0,0.0,4.0,True,,-1.0 +28,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,185.0,1.0,185.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,3.0448263888888887,-1.7083333333333333,-3.0448263888888887,-4.753159722222223,1.7083333333333333,4.753159722222223,3.0,0.0,5.0,True,,7.0 +29,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,2.0,0.0,159.0,0.0,129.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,2.7948958333333334,-0.9583333333333334,-2.7948958333333334,-3.753229166666667,0.9583333333333334,3.753229166666667,3.0,0.0,4.0,True,,-1.0 +30,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,63.0,0.0,63.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.044525462962963,-0.7083333333333334,-3.044525462962963,-3.752858796296296,0.7083333333333334,3.752858796296296,3.0,0.0,4.0,True,,6.0 +31,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,394.0,2.0,394.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.794768518518519,-2.958333333333333,-3.794768518518519,-6.753101851851853,2.958333333333333,6.753101851851853,4.0,0.0,0.0,True,,-1.0 +32,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,271.0,4.0,271.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,4.044976851851852,-4.708333333333333,-4.044976851851852,-8.753310185185185,4.708333333333333,8.753310185185185,4.0,0.0,2.0,True,,-1.0 +33,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,138.0,0.0,138.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,3.7945717592592594,-0.9583333333333334,-3.7945717592592594,-4.7529050925925915,0.9583333333333334,4.7529050925925915,4.0,0.0,5.0,True,,-1.0 +34,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,740.0,6.0,740.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,3.7946759259259264,-6.958333333333332,-3.7946759259259264,-10.75300925925926,6.958333333333332,10.75300925925926,4.0,0.0,4.0,True,,-1.0 +35,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,188.0,1.0,188.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,5.044328703703704,-1.7083333333333333,-5.044328703703704,-6.752662037037037,1.7083333333333333,6.752662037037037,5.0,0.0,0.0,True,,8.0 +36,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,142.0,0.0,142.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,4.7527083333333335,-0.9583333333333334,-4.7527083333333335,-5.7110416666666675,0.9583333333333334,5.7110416666666675,5.0,0.0,6.0,True,,-1.0 +37,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,489.0,3.0,464.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,4.753217592592593,-3.9583333333333335,-4.753217592592593,-8.711550925925925,3.9583333333333335,8.711550925925925,5.0,0.0,2.0,True,,-1.0 +38,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,120.0,0.0,120.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,5.7947453703703715,-0.9583333333333334,-5.7947453703703715,-6.753078703703704,0.9583333333333334,6.753078703703704,6.0,0.0,0.0,True,,-1.0 +39,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,287.0,1.0,257.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,5.7532754629629625,-1.9583333333333333,-5.7532754629629625,-7.711608796296296,1.9583333333333333,7.711608796296296,6.0,0.0,1.0,True,,-1.0 +40,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,167.0,1.0,167.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,5.752766203703704,-1.9583333333333333,-5.752766203703704,-7.711099537037038,1.9583333333333333,7.711099537037038,6.0,0.0,1.0,True,,-1.0 +41,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,120.0,0.0,120.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,5.794502314814816,-0.9583333333333334,-5.794502314814816,-6.752835648148147,0.9583333333333334,6.752835648148147,6.0,0.0,0.0,True,,-1.0 +42,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,901.0,6.0,901.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,5.7531944444444445,-6.958333333333332,-5.7531944444444445,-12.711527777777777,6.958333333333332,12.711527777777777,6.0,0.0,6.0,True,,-1.0 +43,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,306.0,1.0,306.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,6.794409722222222,-1.9583333333333333,-6.794409722222222,-8.752743055555555,1.9583333333333333,8.752743055555555,0.0,0.0,2.0,True,,-1.0 +44,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,97.0,0.0,97.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,6.752881944444446,-0.9583333333333334,-6.752881944444446,-7.711215277777778,0.9583333333333334,7.711215277777778,0.0,0.0,1.0,True,,1.0 +45,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,254.0,1.0,254.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,7.794398148148147,-1.9583333333333333,-7.794398148148147,-9.752731481481481,1.9583333333333333,9.752731481481481,1.0,0.0,3.0,True,,-1.0 +46,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,791.0,5.0,766.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,7.753344907407408,-5.958333333333332,-7.753344907407408,-13.71167824074074,5.958333333333332,13.71167824074074,1.0,0.0,0.0,True,,-1.0 +47,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,154.0,1.0,154.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,7.794513888888888,-1.9583333333333333,-7.794513888888888,-9.752847222222222,1.9583333333333333,9.752847222222222,1.0,0.0,3.0,True,,4.0 +48,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,244.0,1.0,244.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,7.7945370370370375,-1.9583333333333333,-7.7945370370370375,-9.752870370370369,1.9583333333333333,9.752870370370369,1.0,0.0,3.0,True,,-1.0 +49,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,219.0,1.0,219.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,7.752696759259258,-1.9583333333333333,-7.752696759259258,-9.711030092592592,1.9583333333333333,9.711030092592592,1.0,0.0,3.0,True,,-1.0 +50,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,364.0,2.0,304.06,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,9.044513888888886,-2.708333333333333,-9.044513888888886,-11.752847222222224,2.708333333333333,11.752847222222224,2.0,0.0,5.0,True,,7.0 +51,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,205.0,1.0,205.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,8.794351851851854,-1.9583333333333333,-8.794351851851854,-10.752685185185184,1.9583333333333333,10.752685185185184,2.0,0.0,4.0,True,,4.0 +52,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,100.0,0.0,100.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,8.794872685185185,-0.9583333333333334,-8.794872685185185,-9.753206018518519,0.9583333333333334,9.753206018518519,2.0,0.0,3.0,True,,-1.0 +53,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,150.0,1.0,150.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,8.7528125,-1.9583333333333333,-8.7528125,-10.711145833333333,1.9583333333333333,10.711145833333333,2.0,0.0,4.0,True,,-1.0 +54,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,243.0,1.0,243.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,9.752870370370369,-1.9583333333333333,-9.752870370370369,-11.711203703703706,1.9583333333333333,11.711203703703706,3.0,0.0,5.0,True,,5.0 +55,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,121.0,0.0,121.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,9.752893518518519,-0.9583333333333334,-9.752893518518519,-10.711226851851851,0.9583333333333334,10.711226851851851,3.0,0.0,4.0,True,,9.0 +56,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,225.0,2.0,225.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,9.752939814814814,-2.958333333333333,-9.752939814814814,-12.711273148148148,2.958333333333333,12.711273148148148,3.0,0.0,6.0,True,,-1.0 +57,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,109.0,0.0,109.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,10.04429398148148,-0.7083333333333334,-10.04429398148148,-10.752627314814816,0.7083333333333334,10.752627314814816,3.0,0.0,4.0,True,,3.0 +58,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,177.0,0.0,127.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,10.75335648148148,-0.9583333333333334,-10.75335648148148,-11.711689814814816,0.9583333333333334,11.711689814814816,4.0,0.0,5.0,True,,-1.0 +59,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,657.0,4.0,657.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,11.794976851851851,-4.958333333333333,-11.794976851851851,-16.753310185185185,4.958333333333333,16.753310185185185,5.0,0.0,3.0,True,,-1.0 +60,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,265.0,1.0,265.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,11.795,-1.9583333333333333,-11.795,-13.753333333333336,1.9583333333333333,13.753333333333336,5.0,0.0,0.0,True,,10.0 +61,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,137.0,0.0,137.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,11.753298611111115,-0.9583333333333334,-11.753298611111115,-12.711631944444445,0.9583333333333334,12.711631944444445,5.0,0.0,6.0,True,,11.0 +62,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,311.0,2.0,311.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,11.794236111111115,-2.958333333333333,-11.794236111111115,-14.752569444444443,2.958333333333333,14.752569444444443,5.0,0.0,1.0,True,,-1.0 +63,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,137.0,0.0,137.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,11.752731481481481,-0.9583333333333334,-11.752731481481481,-12.711064814814815,0.9583333333333334,12.711064814814815,5.0,0.0,6.0,True,,11.0 +64,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,220.0,1.0,200.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,13.044409722222223,-1.7083333333333333,-13.044409722222223,-14.752743055555555,1.7083333333333333,14.752743055555555,6.0,0.0,1.0,True,,-1.0 +65,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,182.0,0.0,132.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,12.753182870370368,-0.9583333333333334,-12.753182870370368,-13.711516203703706,0.9583333333333334,13.711516203703706,6.0,0.0,0.0,True,,-1.0 +66,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,136.0,0.0,136.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,13.795046296296293,-0.9583333333333334,-13.795046296296293,-14.753379629629631,0.9583333333333334,14.753379629629631,0.0,0.0,1.0,True,,-1.0 +67,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,122.0,0.0,122.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,13.753171296296294,-0.9583333333333334,-13.753171296296294,-14.711504629629632,0.9583333333333334,14.711504629629632,0.0,0.0,1.0,True,,9.0 +68,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,396.0,2.0,336.06,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,14.044733796296294,-2.708333333333333,-14.044733796296294,-16.75306712962963,2.708333333333333,16.75306712962963,0.0,0.0,3.0,True,,3.0 +69,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,384.0,2.0,384.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,13.75300925925926,-2.958333333333333,-13.75300925925926,-16.711342592592594,2.958333333333333,16.711342592592594,0.0,0.0,3.0,True,,9.0 +70,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,322.0,1.0,262.04,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,14.753333333333336,-1.9583333333333333,-14.753333333333336,-16.711666666666666,1.9583333333333333,16.711666666666666,1.0,0.0,3.0,True,,9.0 +71,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,508.0,3.0,508.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,15.753263888888887,-3.9583333333333335,-15.753263888888887,-19.711597222222224,3.9583333333333335,19.711597222222224,2.0,0.0,6.0,True,,-1.0 +72,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,343.0,2.0,343.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,15.752997685185184,-2.958333333333333,-15.752997685185184,-18.711331018518518,2.958333333333333,18.711331018518518,2.0,0.0,5.0,True,,12.0 +73,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,764.0,5.0,644.12,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,17.044618055555556,-5.708333333333332,-17.044618055555556,-22.75295138888889,5.708333333333332,22.75295138888889,3.0,0.0,2.0,True,,-1.0 +74,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,325.0,2.0,325.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,16.752754629629628,-2.958333333333333,-16.752754629629628,-19.711087962962967,2.958333333333333,19.711087962962967,3.0,0.0,6.0,True,,12.0 +75,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,100.0,0.0,100.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,18.794803240740737,-0.9583333333333334,-18.794803240740737,-19.753136574074077,0.9583333333333334,19.753136574074077,5.0,0.0,6.0,True,,-1.0 +76,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,175.0,0.0,125.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,8.0,8.0,3.0,3.0,3.0,18.752974537037037,-0.9583333333333334,-18.752974537037037,-19.711307870370373,0.9583333333333334,19.711307870370373,5.0,0.0,6.0,True,,-1.0 +77,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,130.0,0.0,110.02,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,20.044444444444444,-0.7083333333333334,-20.044444444444444,-20.752777777777773,0.7083333333333334,20.752777777777773,6.0,0.0,0.0,True,,8.0 +78,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,112.0,1.0,112.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,20.04491898148148,-1.7083333333333333,-20.04491898148148,-21.753252314814816,1.7083333333333333,21.753252314814816,6.0,0.0,1.0,True,,-1.0 +79,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,96.0,0.0,96.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,8.0,8.0,3.0,3.0,3.0,19.794780092592596,-0.9583333333333334,-19.794780092592596,-20.753113425925925,0.9583333333333334,20.753113425925925,6.0,0.0,0.0,True,,-1.0 +80,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,317.0,1.0,257.04,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,8.0,9.0,3.0,3.0,3.0,24.75306712962963,-1.9583333333333333,-24.75306712962963,-26.711400462962967,1.9583333333333333,26.711400462962967,4.0,0.0,6.0,True,,-1.0 +81,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,352.0,2.0,352.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,8.0,9.0,3.0,3.0,3.0,24.794988425925933,-2.958333333333333,-24.794988425925933,-27.753321759259254,2.958333333333333,27.753321759259254,4.0,0.0,0.0,True,,-1.0 +82,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,253.0,1.0,253.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,29.04434027777777,-1.7083333333333333,-29.04434027777777,-30.752673611111113,1.7083333333333333,30.752673611111113,1.0,0.0,3.0,True,,3.0 +83,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,563.0,3.0,503.04,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,8.0,9.0,3.0,3.0,3.0,29.753055555555555,-3.9583333333333335,-29.753055555555555,-33.71138888888889,3.9583333333333335,33.71138888888889,2.0,0.0,6.0,True,,12.0 +84,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,2.0,0.0,250.0,1.0,250.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,29.79482638888889,-1.9583333333333333,-29.79482638888889,-31.753159722222218,1.9583333333333333,31.753159722222218,2.0,0.0,4.0,True,,-1.0 +85,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,466.0,3.0,466.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,33.04431712962963,-3.7083333333333335,-33.04431712962963,-36.75265046296296,3.7083333333333335,36.75265046296296,5.0,0.0,2.0,True,,-1.0 +86,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,250.0,1.0,250.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,32.752604166666664,-1.9583333333333333,-32.752604166666664,-34.7109375,1.9583333333333333,34.7109375,5.0,0.0,0.0,True,,-1.0 +87,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,155.0,0.0,155.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,33.79460648148148,-0.9583333333333334,-33.79460648148148,-34.752939814814816,0.9583333333333334,34.752939814814816,6.0,0.0,0.0,False,1.0,10.0 +88,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,976.0,5.0,926.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,42.75263888888889,-5.958333333333332,-42.75263888888889,-48.710972222222225,5.958333333333332,48.710972222222225,1.0,0.0,0.0,True,,-1.0 +89,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,147.0,0.0,147.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,47.79488425925926,-0.9583333333333334,-47.79488425925926,-48.75321759259259,0.9583333333333334,48.75321759259259,6.0,0.0,0.0,True,,-1.0 +90,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,91.0,0.0,91.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,8.0,9.0,3.0,3.0,3.0,49.79425925925926,-0.9583333333333334,-49.79425925925926,-50.75259259259259,0.9583333333333334,50.75259259259259,1.0,0.0,2.0,True,,-1.0 +91,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,235.0,0.0,130.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,9.0,9.0,3.0,3.0,3.0,-0.0013541666666666667,-0.7638888888888888,0.0013541666666666667,-0.7625347222222222,0.7638888888888888,0.7625347222222222,2.0,2.0,3.0,True,,-1.0 +92,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,0.0,671.0,3.0,551.08,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,8.0,10.0,4.0,3.0,4.0,58.79480324074074,-3.9583333333333335,-58.79480324074074,-62.75313657407408,3.9583333333333335,62.75313657407408,3.0,0.0,0.0,True,,-1.0 +93,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,85.0,0.0,85.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,8.0,10.0,4.0,3.0,4.0,61.75328703703704,-0.9583333333333334,-61.75328703703704,-62.71162037037037,0.9583333333333334,62.71162037037037,6.0,0.0,0.0,True,,-1.0 +94,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,356.0,1.0,306.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,8.0,10.0,4.0,3.0,4.0,76.75270833333333,-1.9583333333333333,-76.75270833333333,-78.71104166666667,1.9583333333333333,78.71104166666667,0.0,0.0,2.0,True,,-1.0 +95,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,273.0,2.0,273.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,8.0,10.0,4.0,3.0,4.0,81.75314814814814,-2.0,-81.75314814814814,-83.75314814814814,2.0,83.75314814814814,5.0,0.0,0.0,True,,-1.0 +96,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,160.0,0.0,160.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,8.0,11.0,4.0,3.0,4.0,92.83598379629628,-0.9583333333333334,-92.83598379629628,-93.79431712962965,0.9583333333333334,93.79431712962965,2.0,0.0,3.0,True,,-1.0 +97,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,145.0,0.0,145.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,8.0,11.0,4.0,3.0,4.0,92.83608796296295,-0.9583333333333334,-92.83608796296295,-93.79442129629628,0.9583333333333334,93.79442129629628,2.0,0.0,3.0,True,,-1.0 +98,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,76.0,0.0,76.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,11.0,8.0,11.0,4.0,3.0,4.0,95.0862962962963,-0.7083333333333334,-95.0862962962963,-95.79462962962965,0.7083333333333334,95.79462962962965,4.0,0.0,5.0,True,,13.0 +99,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,93.0,0.0,93.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,11.0,8.0,11.0,4.0,3.0,4.0,109.08657407407408,-0.7083333333333334,-109.08657407407408,-109.7949074074074,0.7083333333333334,109.7949074074074,4.0,0.0,5.0,True,,13.0 +100,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,245.0,2.0,245.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,12.0,8.0,12.0,4.0,3.0,4.0,143.83613425925927,-2.958333333333333,-143.83613425925927,-146.7944675925926,2.958333333333333,146.7944675925926,4.0,0.0,0.0,True,,-1.0 +101,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,85.0,0.0,85.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.023506944444444445,-0.9583333333333334,-0.023506944444444445,-0.9818402777777778,0.9583333333333334,0.9818402777777778,4.0,4.0,5.0,True,,-1.0 +102,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,102.0,0.0,102.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,0.21157407407407408,-0.9583333333333334,-0.21157407407407408,-1.1699074074074074,0.9583333333333334,1.1699074074074074,1.0,1.0,2.0,True,,-1.0 +103,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,2.0,2.0,1.0,1.0,1.0,0.3709027777777778,-0.7083333333333334,-0.3709027777777778,-1.0792361111111108,0.7083333333333334,1.0792361111111108,3.0,3.0,4.0,True,,-1.0 +104,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,780.0,2.0,675.06,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,2.0,2.0,3.0,1.0,1.0,1.0,9.056689814814817,-2.958333333333333,-9.056689814814817,-12.015023148148147,2.958333333333333,12.015023148148147,5.0,3.0,1.0,False,2.0,-1.0 +105,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,245.0,0.0,245.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,2.0,2.0,3.0,1.0,1.0,1.0,9.02130787037037,-0.9583333333333334,-9.02130787037037,-9.979641203703702,0.9583333333333334,9.979641203703702,5.0,3.0,6.0,True,,-1.0 +107,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,189.98,1.0,0.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,3.0,3.0,3.0,1.0,1.0,1.0,-0.002685185185185185,-1.1923611111111112,0.002685185185185185,-1.189675925925926,1.1923611111111112,1.189675925925926,3.0,3.0,4.0,False,3.0,-1.0 +112,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,530.0,5.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,5.0,5.0,2.0,2.0,2.0,-0.0016435185185185185,-5.025,0.0016435185185185185,-5.023356481481481,5.025,5.023356481481481,3.0,3.0,1.0,False,1.0,-1.0 +114,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,5.0,5.0,2.0,2.0,2.0,-0.0006365740740740741,-1.0319444444444446,0.0006365740740740741,-1.0313078703703704,1.0319444444444446,1.0313078703703704,3.0,3.0,4.0,False,1.0,-1.0 +122,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,100.0,0.0,80.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,5.0,5.0,5.0,2.0,2.0,2.0,0.1870023148148148,-0.9583333333333334,-0.1870023148148148,-1.1453356481481485,0.9583333333333334,1.1453356481481485,1.0,1.0,2.0,False,1.0,-1.0 +125,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,140.0,1.0,135.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,5.0,5.0,5.0,2.0,2.0,2.0,0.2304513888888889,-1.7083333333333333,-0.2304513888888889,-1.9387847222222223,1.7083333333333333,1.9387847222222223,3.0,3.0,5.0,True,,-1.0 +126,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,140.0,1.0,135.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,5.0,5.0,5.0,2.0,2.0,2.0,0.23034722222222226,-1.7083333333333333,-0.23034722222222226,-1.9386805555555555,1.7083333333333333,1.9386805555555555,3.0,3.0,5.0,True,,-1.0 +127,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,215.0,1.0,160.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,5.0,5.0,5.0,2.0,2.0,2.0,0.2299884259259259,-1.7083333333333333,-0.2299884259259259,-1.9383217592592592,1.7083333333333333,1.9383217592592592,3.0,3.0,5.0,True,,-1.0 +129,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,145.0,0.0,87.5,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,6.0,6.0,2.0,2.0,2.0,0.4744097222222222,-0.7083333333333334,-0.4744097222222222,-1.1827430555555556,0.7083333333333334,1.1827430555555556,1.0,1.0,2.0,False,1.0,-1.0 +130,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,100.0,0.0,80.0,1.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,6.0,6.0,6.0,2.0,2.0,2.0,0.21835648148148148,-0.9583333333333334,-0.21835648148148148,-1.1766898148148148,0.9583333333333334,1.1766898148148148,1.0,1.0,2.0,True,,-1.0 +133,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,131.0,1.0,51.0,6.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,6.0,2.0,2.0,2.0,1.145034722222222,-1.9583333333333333,-1.145034722222222,-3.1033680555555554,1.9583333333333333,3.1033680555555554,3.0,2.0,5.0,True,,14.0 +139,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,245.0,1.0,240.0,6.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,6.0,2.0,2.0,2.0,2.145023148148148,-1.9583333333333333,-2.145023148148148,-4.103356481481481,1.9583333333333333,4.103356481481481,4.0,2.0,6.0,True,,14.0 +145,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.316203703703704,-3.9583333333333335,-4.316203703703704,-8.274537037037037,3.9583333333333335,8.274537037037037,1.0,4.0,5.0,True,,15.0 +146,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.315069444444443,-3.9583333333333335,-4.315069444444443,-8.273402777777777,3.9583333333333335,8.273402777777777,1.0,4.0,5.0,True,,15.0 +147,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.313969907407406,-3.9583333333333335,-4.313969907407406,-8.27230324074074,3.9583333333333335,8.27230324074074,1.0,4.0,5.0,True,,-1.0 +148,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.309456018518518,-3.9583333333333335,-4.309456018518518,-8.267789351851851,3.9583333333333335,8.267789351851851,1.0,4.0,5.0,True,,15.0 +149,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.308101851851852,-3.9583333333333335,-4.308101851851852,-8.266435185185188,3.9583333333333335,8.266435185185188,1.0,4.0,5.0,True,,15.0 +150,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.307476851851852,-3.9583333333333335,-4.307476851851852,-8.265810185185185,3.9583333333333335,8.265810185185185,1.0,4.0,5.0,True,,15.0 +151,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.306643518518518,-3.9583333333333335,-4.306643518518518,-8.264976851851854,3.9583333333333335,8.264976851851854,1.0,4.0,5.0,True,,15.0 +152,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.304282407407406,-3.9583333333333335,-4.304282407407406,-8.26261574074074,3.9583333333333335,8.26261574074074,1.0,4.0,5.0,True,,15.0 +153,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.3031597222222215,-3.9583333333333335,-4.3031597222222215,-8.261493055555556,3.9583333333333335,8.261493055555556,1.0,4.0,5.0,True,,15.0 +154,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,492.0,3.0,492.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,6.0,6.0,7.0,2.0,2.0,3.0,4.235115740740741,-3.9583333333333335,-4.235115740740741,-8.193449074074074,3.9583333333333335,8.193449074074074,1.0,4.0,5.0,True,,-1.0 +155,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,128.0,1.0,128.0,2.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,6.0,7.0,3.0,2.0,3.0,14.073217592592592,-1.9583333333333333,-14.073217592592592,-16.031550925925927,1.9583333333333333,16.031550925925927,2.0,2.0,4.0,False,1.0,-1.0 +162,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,62.0,0.0,52.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,7.0,6.0,7.0,3.0,2.0,3.0,8.959201388888891,-0.9583333333333334,-8.959201388888891,-9.917534722222221,0.9583333333333334,9.917534722222221,2.0,0.0,3.0,True,,-1.0 +163,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,4633.0,2.0,4283.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,7.0,7.0,7.0,3.0,3.0,3.0,0.0,-2.8891435185185186,0.0,-2.8891435185185186,2.8891435185185186,2.8891435185185186,4.0,4.0,0.0,True,,-1.0 +183,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1275.0,0.0,1275.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,7.0,8.0,3.0,3.0,3.0,22.92104166666667,-0.9576388888888888,-22.92104166666667,-23.878680555555555,0.9576388888888888,23.878680555555555,6.0,4.0,0.0,True,,-1.0 +192,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,421.0,2.0,421.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,8.0,7.0,8.0,3.0,3.0,3.0,14.315439814814816,-2.958333333333333,-14.315439814814816,-17.273773148148152,2.958333333333333,17.273773148148152,2.0,2.0,5.0,True,,-1.0 +193,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,755.0,2.0,755.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,7.0,8.0,3.0,3.0,3.0,14.296458333333335,-2.958333333333333,-14.296458333333335,-17.254791666666666,2.958333333333333,17.254791666666666,2.0,2.0,5.0,True,,16.0 +194,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,814.0,2.0,814.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,7.0,8.0,3.0,3.0,3.0,14.295046296296293,-2.958333333333333,-14.295046296296293,-17.25337962962963,2.958333333333333,17.25337962962963,2.0,2.0,5.0,True,,16.0 +195,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,967.0,2.0,967.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,8.0,7.0,8.0,3.0,3.0,3.0,14.281666666666665,-2.958333333333333,-14.281666666666665,-17.24,2.958333333333333,17.24,2.0,2.0,5.0,True,,16.0 +198,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,1750.0,0.0,1250.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,7.0,8.0,3.0,3.0,3.0,29.028159722222227,-0.9576388888888888,-29.028159722222227,-29.98579861111111,0.9576388888888888,29.98579861111111,1.0,0.0,2.0,True,,-1.0 +200,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,190.0,1.0,170.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,8.0,7.0,8.0,3.0,3.0,3.0,42.255243055555546,-1.9583333333333333,-42.255243055555546,-44.213576388888896,1.9583333333333333,44.213576388888896,2.0,2.0,4.0,True,,-1.0 +207,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,52.31564814814814,-1.9583333333333333,-52.31564814814814,-54.27398148148149,1.9583333333333333,54.27398148148149,5.0,2.0,0.0,True,,17.0 +208,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,52.31564814814814,-1.9583333333333333,-52.31564814814814,-54.27398148148149,1.9583333333333333,54.27398148148149,5.0,2.0,0.0,True,,18.0 +209,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,52.31563657407408,-1.9583333333333333,-52.31563657407408,-54.273969907407405,1.9583333333333333,54.273969907407405,5.0,2.0,0.0,True,,19.0 +211,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,2470.0,1.0,2470.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,7.0,8.0,3.0,3.0,3.0,33.985486111111115,-1.4166666666666667,-33.985486111111115,-35.40215277777778,1.4166666666666667,35.40215277777778,2.0,3.0,3.0,True,,-1.0 +213,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,60.297546296296304,-1.9583333333333333,-60.297546296296304,-62.25587962962963,1.9583333333333333,62.25587962962963,6.0,2.0,1.0,True,,18.0 +214,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,60.297546296296304,-1.9583333333333333,-60.297546296296304,-62.25587962962963,1.9583333333333333,62.25587962962963,6.0,2.0,1.0,True,,19.0 +215,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,60.297523148148144,-1.9583333333333333,-60.297523148148144,-62.25585648148147,1.9583333333333333,62.25585648148147,6.0,2.0,1.0,True,,17.0 +220,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,63.292442129629634,-1.9583333333333333,-63.292442129629634,-65.25077546296296,1.9583333333333333,65.25077546296296,2.0,2.0,4.0,True,,20.0 +221,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,63.292442129629634,-1.9583333333333333,-63.292442129629634,-65.25077546296296,1.9583333333333333,65.25077546296296,2.0,2.0,4.0,True,,21.0 +222,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,8.0,6.0,8.0,3.0,2.0,3.0,63.29243055555556,-1.9583333333333333,-63.29243055555556,-65.25076388888888,1.9583333333333333,65.25076388888888,2.0,2.0,4.0,True,,22.0 +223,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,119.0,0.0,119.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,6.0,8.0,3.0,2.0,3.0,66.2905787037037,-0.9583333333333334,-66.2905787037037,-67.24891203703703,0.9583333333333334,67.24891203703703,5.0,2.0,6.0,True,,-1.0 +224,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,120.0,0.0,120.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,6.0,8.0,3.0,2.0,3.0,66.29056712962964,-0.9583333333333334,-66.29056712962964,-67.24890046296296,0.9583333333333334,67.24890046296296,5.0,2.0,6.0,True,,-1.0 +225,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,120.0,0.0,120.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,8.0,6.0,8.0,3.0,2.0,3.0,66.29055555555556,-0.9583333333333334,-66.29055555555556,-67.2488888888889,0.9583333333333334,67.2488888888889,5.0,2.0,6.0,True,,-1.0 +226,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,69.28862268518519,-1.9583333333333333,-69.28862268518519,-71.24695601851852,1.9583333333333333,71.24695601851852,1.0,2.0,3.0,True,,22.0 +227,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,69.28862268518519,-1.9583333333333333,-69.28862268518519,-71.24695601851852,1.9583333333333333,71.24695601851852,1.0,2.0,3.0,True,,20.0 +228,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,69.28861111111111,-1.9583333333333333,-69.28861111111111,-71.24694444444444,1.9583333333333333,71.24694444444444,1.0,2.0,3.0,True,,21.0 +229,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,120.0,0.0,120.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,72.28688657407406,-0.9583333333333334,-72.28688657407406,-73.2452199074074,0.9583333333333334,73.2452199074074,4.0,2.0,5.0,True,,23.0 +230,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,120.0,0.0,120.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,72.286875,-0.9583333333333334,-72.286875,-73.24520833333334,0.9583333333333334,73.24520833333334,4.0,2.0,5.0,True,,24.0 +231,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,119.0,0.0,119.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,72.286875,-0.9583333333333334,-72.286875,-73.24520833333334,0.9583333333333334,73.24520833333334,4.0,2.0,5.0,True,,25.0 +232,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,75.28344907407406,-1.9583333333333333,-75.28344907407406,-77.24178240740741,1.9583333333333333,77.24178240740741,0.0,2.0,2.0,True,,21.0 +233,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,75.28344907407406,-1.9583333333333333,-75.28344907407406,-77.24178240740741,1.9583333333333333,77.24178240740741,0.0,2.0,2.0,True,,22.0 +234,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,75.28344907407406,-1.9583333333333333,-75.28344907407406,-77.24178240740741,1.9583333333333333,77.24178240740741,0.0,2.0,2.0,True,,20.0 +237,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,79.28217592592594,-1.9583333333333333,-79.28217592592594,-81.24050925925926,1.9583333333333333,81.24050925925926,4.0,2.0,6.0,True,,25.0 +238,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,79.28216435185185,-1.9583333333333333,-79.28216435185185,-81.24049768518519,1.9583333333333333,81.24049768518519,4.0,2.0,6.0,True,,23.0 +239,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,9.0,6.0,9.0,3.0,2.0,3.0,79.28216435185185,-1.9583333333333333,-79.28216435185185,-81.24049768518519,1.9583333333333333,81.24049768518519,4.0,2.0,6.0,True,,24.0 +240,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,83.27493055555556,-1.9583333333333333,-83.27493055555556,-85.2332638888889,1.9583333333333333,85.2332638888889,1.0,2.0,3.0,True,,21.0 +241,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,83.27491898148149,-1.9583333333333333,-83.27491898148149,-85.23325231481482,1.9583333333333333,85.23325231481482,1.0,2.0,3.0,True,,20.0 +242,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,83.27491898148149,-1.9583333333333333,-83.27491898148149,-85.23325231481482,1.9583333333333333,85.23325231481482,1.0,2.0,3.0,True,,22.0 +248,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,87.27244212962962,-1.9583333333333333,-87.27244212962962,-89.23077546296297,1.9583333333333333,89.23077546296297,5.0,2.0,0.0,True,,18.0 +249,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,87.27243055555556,-1.9583333333333333,-87.27243055555556,-89.23076388888889,1.9583333333333333,89.23076388888889,5.0,2.0,0.0,True,,17.0 +250,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,87.27243055555556,-1.9583333333333333,-87.27243055555556,-89.23076388888889,1.9583333333333333,89.23076388888889,5.0,2.0,0.0,True,,19.0 +251,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,91.27131944444444,-1.9583333333333333,-91.27131944444444,-93.22965277777777,1.9583333333333333,93.22965277777777,2.0,2.0,4.0,True,,22.0 +252,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,91.27130787037035,-1.9583333333333333,-91.27130787037035,-93.22964120370372,1.9583333333333333,93.22964120370372,2.0,2.0,4.0,True,,21.0 +253,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,91.27130787037035,-1.9583333333333333,-91.27130787037035,-93.22964120370372,1.9583333333333333,93.22964120370372,2.0,2.0,4.0,True,,20.0 +254,1.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,95.19518518518518,-1.9583333333333333,-95.19518518518518,-97.15351851851852,1.9583333333333333,97.15351851851852,6.0,2.0,1.0,True,,-1.0 +255,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,95.19517361111113,-1.9583333333333333,-95.19517361111113,-97.15350694444444,1.9583333333333333,97.15350694444444,6.0,2.0,1.0,True,,19.0 +256,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,9.0,6.0,9.0,3.0,2.0,3.0,95.19517361111113,-1.9583333333333333,-95.19517361111113,-97.15350694444444,1.9583333333333333,97.15350694444444,6.0,2.0,1.0,True,,18.0 +257,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,238.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,10.0,6.0,10.0,4.0,2.0,4.0,99.19427083333332,-1.9583333333333333,-99.19427083333332,-101.15260416666666,1.9583333333333333,101.15260416666666,3.0,2.0,5.0,True,,-1.0 +258,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,10.0,6.0,10.0,4.0,2.0,4.0,99.19425925925924,-1.9583333333333333,-99.19425925925924,-101.1525925925926,1.9583333333333333,101.1525925925926,3.0,2.0,5.0,True,,-1.0 +259,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,10.0,6.0,10.0,4.0,2.0,4.0,99.19425925925924,-1.9583333333333333,-99.19425925925924,-101.1525925925926,1.9583333333333333,101.1525925925926,3.0,2.0,5.0,True,,-1.0 +260,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,102.17386574074074,-1.9583333333333333,-102.17386574074074,-104.13219907407408,1.9583333333333333,104.13219907407408,6.0,2.0,1.0,True,,26.0 +261,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,250.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,102.17386574074074,-1.9583333333333333,-102.17386574074074,-104.13219907407408,1.9583333333333333,104.13219907407408,6.0,2.0,1.0,True,,27.0 +262,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,248.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,102.17385416666669,-1.9583333333333333,-102.17385416666669,-104.1321875,1.9583333333333333,104.1321875,6.0,2.0,1.0,True,,28.0 +263,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,101.11791666666667,-1.9583333333333333,-101.11791666666667,-103.07625,1.9583333333333333,103.07625,6.0,3.0,1.0,True,,26.0 +264,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,250.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,101.11790509259261,-1.9583333333333333,-101.11790509259261,-103.07623842592592,1.9583333333333333,103.07623842592592,6.0,3.0,1.0,True,,27.0 +265,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,248.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,101.11790509259261,-1.9583333333333333,-101.11790509259261,-103.07623842592592,1.9583333333333333,103.07623842592592,6.0,3.0,1.0,True,,28.0 +266,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,0.0,248.0,1.0,238.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,105.15989583333334,-1.9583333333333333,-105.15989583333334,-107.11822916666668,1.9583333333333333,107.11822916666668,2.0,2.0,4.0,True,,-1.0 +267,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,240.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,105.15989583333334,-1.9583333333333333,-105.15989583333334,-107.11822916666668,1.9583333333333333,107.11822916666668,2.0,2.0,4.0,True,,-1.0 +268,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,250.0,1.0,240.0,1.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,6.0,10.0,4.0,2.0,4.0,105.15988425925926,-1.9583333333333333,-105.15988425925926,-107.1182175925926,1.9583333333333333,107.1182175925926,2.0,2.0,4.0,True,,-1.0 +285,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,10.0,7.0,10.0,4.0,3.0,4.0,86.1355324074074,-2.957638888888889,-86.1355324074074,-89.09317129629629,2.957638888888889,89.09317129629629,3.0,1.0,6.0,True,,-1.0 +286,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,10.0,7.0,10.0,4.0,3.0,4.0,90.0945949074074,-2.957638888888889,-90.0945949074074,-93.05223379629628,2.957638888888889,93.05223379629628,0.0,1.0,3.0,True,,29.0 +295,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,111.0809375,-2.957638888888889,-111.0809375,-114.03857638888887,2.957638888888889,114.03857638888887,0.0,1.0,3.0,True,,29.0 +296,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,111.07585648148148,-2.957638888888889,-111.07585648148148,-114.03349537037035,2.957638888888889,114.03349537037035,0.0,1.0,3.0,True,,29.0 +297,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,111.06811342592592,-2.957638888888889,-111.06811342592592,-114.0257523148148,2.957638888888889,114.0257523148148,0.0,1.0,3.0,True,,29.0 +298,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,111.06658564814815,-2.957638888888889,-111.06658564814815,-114.02422453703704,2.957638888888889,114.02422453703704,0.0,1.0,3.0,True,,29.0 +299,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.99961805555556,-2.957638888888889,-110.99961805555556,-113.95725694444445,2.957638888888889,113.95725694444445,0.0,1.0,3.0,True,,29.0 +300,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.99744212962965,-2.957638888888889,-110.99744212962965,-113.95508101851853,2.957638888888889,113.95508101851853,0.0,1.0,3.0,True,,29.0 +301,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.96386574074074,-2.957638888888889,-110.96386574074074,-113.92150462962964,2.957638888888889,113.92150462962964,0.0,1.0,3.0,True,,29.0 +302,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.96203703703705,-2.957638888888889,-110.96203703703705,-113.91967592592592,2.957638888888889,113.91967592592592,0.0,1.0,3.0,True,,29.0 +303,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.95988425925924,-2.957638888888889,-110.95988425925924,-113.91752314814815,2.957638888888889,113.91752314814815,0.0,1.0,3.0,True,,29.0 +304,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.95886574074072,-2.957638888888889,-110.95886574074072,-113.91650462962966,2.957638888888889,113.91650462962966,0.0,1.0,3.0,True,,29.0 +305,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.95346064814815,-2.957638888888889,-110.95346064814815,-113.91109953703705,2.957638888888889,113.91109953703705,0.0,1.0,3.0,True,,29.0 +306,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.92690972222222,-2.957638888888889,-110.92690972222222,-113.88454861111113,2.957638888888889,113.88454861111113,0.0,1.0,3.0,True,,29.0 +307,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,4335.0,2.0,4155.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,11.0,7.0,11.0,4.0,3.0,4.0,110.92625,-2.957638888888889,-110.92625,-113.88388888888888,2.957638888888889,113.88388888888888,0.0,1.0,3.0,True,,29.0 +316,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,136.0,2.0,136.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,7.0,1.0,1.0,3.0,1.0,163.3394212962963,-2.958333333333333,-163.3394212962963,-166.29775462962962,2.958333333333333,166.29775462962962,4.0,2.0,0.0,True,,-1.0 diff --git a/ai/storage/test-file-id-input/LTV_class_of_long_time_guests.csv b/ai/storage/test-file-id-input/LTV_class_of_long_time_guests.csv new file mode 100644 index 0000000..40feb1c --- /dev/null +++ b/ai/storage/test-file-id-input/LTV_class_of_long_time_guests.csv @@ -0,0 +1,6 @@ +GuestID,LTV_Class,CLV_Low_Prob,CLV_Mid_Prob,CLV_High_Prob +87.0,CLV_Low_Prob,1,0,0 +104.0,CLV_Mid_Prob,0,1,0 +107.0,CLV_High_Prob,0,0,1 +112.0,CLV_Low_Prob,1,0,0 +114.0,CLV_Low_Prob,1,0,0 diff --git a/ai/storage/test-file-id-input/LTV_class_of_short_time_guests.csv b/ai/storage/test-file-id-input/LTV_class_of_short_time_guests.csv new file mode 100644 index 0000000..9de04c4 --- /dev/null +++ b/ai/storage/test-file-id-input/LTV_class_of_short_time_guests.csv @@ -0,0 +1,4 @@ +GuestID,LTV_Class,CLV_Low_Prob,CLV_Mid_Prob,CLV_High_Prob +122.0,CLV_Low_Prob,0.3333333432674408,0.3333333432674408,0.3333333432674408 +129.0,CLV_Low_Prob,0.3333333432674408,0.3333333432674408,0.3333333432674408 +155.0,CLV_Low_Prob,0.3333333432674408,0.3333333432674408,0.3333333432674408 diff --git a/ai/storage/test-file-id-input/data_input_with_guest_id.csv b/ai/storage/test-file-id-input/data_input_with_guest_id.csv new file mode 100644 index 0000000..73db642 --- /dev/null +++ b/ai/storage/test-file-id-input/data_input_with_guest_id.csv @@ -0,0 +1,319 @@ +CreatedDate,Status,RoomGroupID,ArrivalDate,DepartureDate,RoomPrice,LastName,FirstName,Nights,Channel,TotalPayment,Country,Adults,Children,Email,RoomNo,GuestID +2019-08-05 13:55:31,Confirmed,BER-DBL,2019-08-06 15:00:00,2019-08-08 08:00:00,221.02,brunner,ferdinand,2,Direct,241.0,DE,1,0.0,daisy01.sunshine01+ferdinand.brunner@gmail.com,4.009,0 +2019-08-05 13:55:23,NoShow,BER-DBL,2019-08-06 15:00:00,2019-08-10 08:00:00,386.0,franta,tarja,4,Direct,386.0,DE,2,0.0,daisy01.sunshine01+tarja.franta@gmail.com,1.010,1 +2019-08-05 13:55:30,Canceled,LND-DBL,2019-08-06 09:00:00,2019-08-07 08:00:00,120.02,green,charley,1,Direct,150.0,GB,2,0.0,daisy01.sunshine01+charley.green@gmail.com,G.015,2 +2019-08-05 13:55:38,CheckedOut,MUC-FAMILY,2019-08-06 08:00:00,2019-08-12 07:00:00,701.0,hiller,nikeeee,6,Direct,726.0,JP,1,0.0,daisy01.sunshine01+nike.hiller@gmail.com,3.001,3 +2019-08-05 13:55:47,Confirmed,LND-DBL,2019-08-06 09:00:00,2019-08-10 08:00:00,520.08,koepp-updated,nestor,4,Direct,640.0,GB,2,0.0,daisy01.sunshine01+nestor.koepp@gmail.com,1.008,4 +2019-08-05 13:55:39,Confirmed,LND-SGL,2019-08-06 09:00:00,2019-08-12 08:00:00,506.0,ledner,stella,6,Direct,506.0,GB,1,0.0,daisy01.sunshine01+stella.ledner@gmail.com,2.008,5 +2019-08-05 13:55:38,Confirmed,MUC-DBL,2019-08-06 08:00:00,2019-08-07 07:00:00,123.01,mensah,jonathan,1,Direct,138.0,DE,1,0.0,daisy01.sunshine01+jonathan.mensah@gmail.com,1.006,6 +2019-08-05 13:56:07,Canceled,LND-DBL,2019-08-06 09:00:00,2019-08-13 08:00:00,913.14,nikolaus,jana,7,Direct,1123.0,GB,2,0.0,daisy01.sunshine01+jana.nikolaus@gmail.com,2.011,7 +2019-08-05 13:55:48,Confirmed,LND-DBL,2019-08-06 09:00:00,2019-08-07 08:00:00,120.02,robel,aurore,1,Direct,150.0,GB,2,0.0,daisy01.sunshine01+aurore.robel@gmail.com,1.014,8 +2019-08-05 13:56:13,Confirmed,LND-SGL,2019-08-06 09:00:00,2019-08-08 08:00:00,163.0,shanahan,giovanny,2,Direct,163.0,GB,1,0.0,daisy01.sunshine01+giovanny.shanahan@gmail.com,2.012,9 +2019-08-05 13:56:17,Confirmed,BER-DBL,2019-08-06 15:00:00,2019-08-07 08:00:00,93.0,strogies,lucas,1,Direct,93.0,DE,2,0.0,daisy01.sunshine01+lucas.strogies@gmail.com,1.014,10 +2019-08-05 13:56:15,Confirmed,MUC-SGL,2019-08-06 08:00:00,2019-08-07 07:00:00,78.0,weidner,giuliana,1,Direct,78.0,DE,1,0.0,daisy01.sunshine01+giuliana.weidner@gmail.com,2.001,11 +2019-08-05 13:56:16,Confirmed,LND-DBL,2019-08-07 09:00:00,2019-08-08 08:00:00,118.0,bailey,ayden,1,Direct,118.0,GB,1,0.0,daisy01.sunshine01+ayden.bailey@gmail.com,G.015,12 +2019-08-05 13:55:07,NoShow,LND-SGL,2019-08-07 09:00:00,2019-08-08 08:00:00,88.0,champlin,lydia,1,Direct,88.0,GB,1,0.0,daisy01.sunshine01+lydia.champlin@gmail.com,G.007,13 +2019-08-05 13:55:16,Confirmed,BER-DBL,2019-08-07 15:00:00,2019-08-09 08:00:00,231.04,horna,jara,2,Direct,271.0,DE,2,0.0,daisy01.sunshine01+jara.horna@gmail.com,2.004,14 +2019-08-05 13:55:33,Confirmed,LND-FAMILY,2019-08-07 09:00:00,2019-08-12 08:00:00,681.0,kutch,rosanna,5,Direct,681.0,GB,2,0.0,daisy01.sunshine01+rosanna.kutch@gmail.com,3.002,15 +2019-08-05 13:56:12,Confirmed,LND-DBL,2019-08-07 09:00:00,2019-08-08 08:00:00,118.0,little,ruben,1,Direct,118.0,GB,1,0.0,daisy01.sunshine01+ruben.little@gmail.com,2.006,16 +2019-08-05 13:55:59,Confirmed,LND-SGL,2019-08-07 09:00:00,2019-08-09 08:00:00,172.0,mcdermott,hosea,2,Direct,172.0,GB,1,0.0,daisy01.sunshine01+hosea.mcdermott@gmail.com,G.003,17 +2019-08-05 13:55:08,Confirmed,MUC-DBL,2019-08-07 08:00:00,2019-08-08 07:00:00,134.02,ostendarp,jessy,1,Direct,164.0,DE,2,0.0,daisy01.sunshine01+jessy.ostendarp@gmail.com,1.015,18 +2019-08-05 13:55:42,Confirmed,MUC-SGL,2019-08-07 08:00:00,2019-08-08 07:00:00,89.0,rã¶ttger,leoni,1,Direct,89.0,DE,1,0.0,daisy01.sunshine01+leoni.rã¶ttger@gmail.com,G.008,19 +2019-08-05 13:55:56,Confirmed,MUC-SGL,2019-08-07 08:00:00,2019-08-08 07:00:00,89.0,schnieder,darleen,1,Direct,89.0,DE,1,0.0,daisy01.sunshine01+darleen.schnieder@gmail.com,2.012,20 +2019-08-05 13:55:37,Confirmed,MUC-DBL,2019-08-07 08:00:00,2019-08-08 07:00:00,134.02,schuhaj,milana,1,Direct,164.0,DE,2,0.0,daisy01.sunshine01+milana.schuhaj@gmail.com,2.011,21 +2019-08-05 13:56:10,Confirmed,BER-DBL,2019-08-08 15:00:00,2019-08-09 08:00:00,93.0,liebach,nelly,1,Direct,93.0,DE,1,0.0,daisy01.sunshine01+nelly.liebach@gmail.com,4.020,22 +2019-08-05 13:56:14,Confirmed,MUC-DBL,2019-08-08 08:00:00,2019-08-10 07:00:00,262.0,lischka,edgar,2,Direct,262.0,DE,2,0.0,daisy01.sunshine01+edgar.lischka@gmail.com,2.014,23 +2019-08-05 13:55:36,Confirmed,BER-DBL,2019-08-08 15:00:00,2019-08-09 08:00:00,93.0,paschke,sam,1,Direct,93.0,DE,1,0.0,daisy01.sunshine01+sam.paschke@gmail.com,3.019,24 +2019-08-05 13:56:18,Confirmed,BER-SGL,2019-08-08 15:00:00,2019-08-09 08:00:00,63.0,pohland,elena,1,Direct,63.0,DE,1,0.0,daisy01.sunshine01+elena.pohland@gmail.com,4.002,25 +2019-08-05 13:55:09,Confirmed,LND-FAMILY,2019-08-08 09:00:00,2019-08-10 08:00:00,237.0,runolfsson,margarita,2,Direct,237.0,GB,1,0.0,daisy01.sunshine01+margarita.runolfsson@gmail.com,3.001,26 +2019-08-05 13:55:09,Confirmed,BER-SGL,2019-08-08 15:00:00,2019-08-09 08:00:00,63.0,stein,alyssa,1,Direct,63.0,DE,1,0.0,daisy01.sunshine01+alyssa.stein@gmail.com,G.002,27 +2019-08-05 13:55:27,Confirmed,BER-DBL,2019-08-08 15:00:00,2019-08-10 08:00:00,185.0,strutz,sven,2,Direct,185.0,DE,2,0.0,daisy01.sunshine01+sven.strutz@gmail.com,2.005,28 +2019-08-05 13:55:21,Confirmed,LND-DBL,2019-08-08 09:00:00,2019-08-09 08:00:00,129.02,weber,fae,1,Direct,159.0,GB,2,0.0,daisy01.sunshine01+fae.weber@gmail.com,G.009,29 +2019-08-05 13:55:53,Confirmed,BER-SGL,2019-08-08 15:00:00,2019-08-09 08:00:00,63.0,zimanyi,darren,1,Direct,63.0,DE,1,0.0,daisy01.sunshine01+darren.zimanyi@gmail.com,G.018,30 +2019-08-05 13:55:32,Confirmed,LND-DBL,2019-08-09 09:00:00,2019-08-12 08:00:00,394.0,hills,hallie,3,Direct,394.0,GB,2,0.0,daisy01.sunshine01+hallie.hills@gmail.com,1.012,31 +2019-08-05 13:55:14,Confirmed,BER-SGL,2019-08-09 15:00:00,2019-08-14 08:00:00,271.0,molitor,elsa,5,Direct,271.0,DE,1,0.0,daisy01.sunshine01+elsa.molitor@gmail.com,G.017,32 +2019-08-05 13:55:49,Confirmed,LND-DBL,2019-08-09 09:00:00,2019-08-10 08:00:00,138.0,steuber,halie,1,Direct,138.0,GB,2,0.0,daisy01.sunshine01+halie.steuber@gmail.com,1.002,33 +2019-08-05 13:55:40,Confirmed,LND-SGL,2019-08-09 09:00:00,2019-08-16 08:00:00,740.0,wisoky,owen,7,Direct,740.0,GB,1,0.0,daisy01.sunshine01+owen.wisoky@gmail.com,G.010,34 +2019-08-05 13:56:10,Confirmed,BER-DBL,2019-08-10 15:00:00,2019-08-12 08:00:00,188.0,gombert,patricia,2,Direct,188.0,DE,2,0.0,daisy01.sunshine01+patricia.gombert@gmail.com,4.014,35 +2019-08-05 13:56:06,Confirmed,MUC-DBL,2019-08-10 08:00:00,2019-08-11 07:00:00,142.0,griese,timon,1,Direct,142.0,DE,1,0.0,daisy01.sunshine01+timon.griese@gmail.com,G.009,36 +2019-08-05 13:55:22,Confirmed,MUC-FAMILY,2019-08-10 08:00:00,2019-08-14 07:00:00,464.0,herberger,joeline,4,Direct,489.0,DE,1,0.0,daisy01.sunshine01+joeline.herberger@gmail.com,3.002,37 +2019-08-05 13:55:34,Confirmed,LND-DBL,2019-08-11 09:00:00,2019-08-12 08:00:00,120.0,langworth,adeline,1,Direct,120.0,GB,1,0.0,daisy01.sunshine01+adeline.langworth@gmail.com,G.004,38 +2019-08-05 13:55:17,Confirmed,MUC-DBL,2019-08-11 08:00:00,2019-08-13 07:00:00,257.02,mewes,mirco,2,Direct,287.0,DE,1,0.0,daisy01.sunshine01+mirco.mewes@gmail.com,1.005,39 +2019-08-05 13:56:01,Confirmed,MUC-SGL,2019-08-11 08:00:00,2019-08-13 07:00:00,167.0,ponitzsch,ayleen,2,Direct,167.0,DE,1,0.0,daisy01.sunshine01+ayleen.ponitzsch@gmail.com,2.013,40 +2019-08-05 13:55:55,Confirmed,LND-FAMILY,2019-08-11 09:00:00,2019-08-12 08:00:00,120.0,ritchie,kody,1,Direct,120.0,GB,2,0.0,daisy01.sunshine01+kody.ritchie@gmail.com,3.001,41 +2019-08-05 13:55:24,Confirmed,MUC-DBL,2019-08-11 08:00:00,2019-08-18 07:00:00,901.0,wissing,leana,7,Direct,901.0,DE,1,0.0,daisy01.sunshine01+leana.wissing@gmail.com,1.014,42 +2019-08-05 13:56:03,Confirmed,LND-DBL,2019-08-12 09:00:00,2019-08-14 08:00:00,306.0,bayer,martin,2,Direct,306.0,GB,2,0.0,daisy01.sunshine01+martin.bayer@gmail.com,1.015,43 +2019-08-05 13:55:51,Confirmed,MUC-SGL,2019-08-12 08:00:00,2019-08-13 07:00:00,97.0,kã¼hnemund,linus,1,Direct,97.0,DE,1,0.0,daisy01.sunshine01+linus.kã¼hnemund@gmail.com,1.011,44 +2019-08-05 13:56:04,Confirmed,LND-FAMILY,2019-08-13 09:00:00,2019-08-15 08:00:00,254.0,boyle,brice,2,Direct,254.0,GB,1,0.0,daisy01.sunshine01+brice.boyle@gmail.com,3.001,45 +2019-08-05 13:55:11,Confirmed,MUC-FAMILY,2019-08-13 08:00:00,2019-08-19 07:00:00,766.0,knobel,amalia,6,Direct,791.0,DE,1,0.0,daisy01.sunshine01+amalia.knobel@gmail.com,3.001,46 +2019-08-05 13:55:54,Confirmed,LND-SGL,2019-08-13 09:00:00,2019-08-15 08:00:00,154.0,mills,tyrese,2,Direct,154.0,GB,1,0.0,daisy01.sunshine01+tyrese.mills@gmail.com,G.001,47 +2019-08-05 13:55:52,Confirmed,LND-DBL,2019-08-13 09:00:00,2019-08-15 08:00:00,244.0,nikolaus,lyric,2,Direct,244.0,GB,2,0.0,daisy01.sunshine01+lyric.nikolaus@gmail.com,1.006,48 +2019-08-05 13:56:07,Confirmed,MUC-DBL,2019-08-13 08:00:00,2019-08-15 07:00:00,219.0,schorr,joyce,2,Direct,219.0,DE,1,0.0,daisy01.sunshine01+joyce.schorr@gmail.com,G.009,49 +2019-08-05 13:55:54,Confirmed,BER-DBL,2019-08-14 15:00:00,2019-08-17 08:00:00,304.06,helpling,sanja,3,Direct,364.0,DE,2,0.0,daisy01.sunshine01+sanja.helpling@gmail.com,4.014,50 +2019-08-05 13:56:08,Confirmed,LND-SGL,2019-08-14 09:00:00,2019-08-16 08:00:00,205.0,mcdermott,kyla,2,Direct,205.0,GB,1,0.0,daisy01.sunshine01+kyla.mcdermott@gmail.com,2.001,51 +2019-08-05 13:55:23,Confirmed,LND-FAMILY,2019-08-14 09:00:00,2019-08-15 08:00:00,100.0,shanahan,aracely1,1,Direct,100.0,GB,1,0.0,daisy01.sunshine01+aracely.shanahan@gmail.com,3.002,52 +2019-08-05 13:55:57,Confirmed,MUC-SGL,2019-08-14 08:00:00,2019-08-16 07:00:00,150.0,steffny,daria,2,Direct,150.0,DE,1,0.0,daisy01.sunshine01+daria.steffny@gmail.com,G.002,53 +2019-08-05 13:55:52,Confirmed,MUC-DBL,2019-08-15 08:00:00,2019-08-17 07:00:00,243.0,achkinadze,gerrit,2,Direct,243.0,DE,2,0.0,daisy01.sunshine01+gerrit.achkinadze@gmail.com,2.014,54 +2019-08-05 13:55:50,Confirmed,MUC-DBL,2019-08-15 08:00:00,2019-08-16 07:00:00,121.0,burmeister,franz,1,Direct,121.0,DE,2,0.0,daisy01.sunshine01+franz.burmeister@gmail.com,1.013,55 +2019-08-05 13:55:46,Confirmed,MUC-SGL,2019-08-15 08:00:00,2019-08-18 07:00:00,225.0,lenk,max,3,Direct,225.0,DE,1,0.0,daisy01.sunshine01+max.lenk@gmail.com,G.012,56 +2019-08-05 13:56:13,Confirmed,BER-DBL,2019-08-15 15:00:00,2019-08-16 08:00:00,109.0,thyssen,lene,1,Direct,109.0,DE,2,0.0,daisy01.sunshine01+lene.thyssen@gmail.com,3.005,57 +2019-08-05 13:55:10,Confirmed,MUC-FAMILY,2019-08-16 08:00:00,2019-08-17 07:00:00,127.0,leist,emilie,1,Direct,177.0,DE,2,0.0,daisy01.sunshine01+emilie.leist@gmail.com,3.002,58 +2019-08-05 13:55:14,Confirmed,,2019-08-17 09:00:00,2019-08-22 08:00:00,657.0,bogan,bridget,5,Direct,657.0,GB,1,0.0,daisy01.sunshine01+bridget.bogan@gmail.com,,59 +2019-08-05 13:55:12,Confirmed,LND-FAMILY,2019-08-17 09:00:00,2019-08-19 08:00:00,265.0,crona,aliya,2,Direct,265.0,GB,2,0.0,daisy01.sunshine01+aliya.crona@gmail.com,3.002,60 +2019-08-05 13:55:15,Confirmed,MUC-DBL,2019-08-17 08:00:00,2019-08-18 07:00:00,137.0,mintzlaff,amon,1,Direct,137.0,DE,2,0.0,daisy01.sunshine01+amon.mintzlaff@gmail.com,1.001,61 +2019-08-05 13:56:18,Confirmed,LND-SGL,2019-08-17 09:00:00,2019-08-20 08:00:00,311.0,paucek,timothy,3,Direct,311.0,GB,1,0.0,daisy01.sunshine01+timothy.paucek@gmail.com,2.012,62 +2019-08-05 13:56:04,Confirmed,MUC-DBL,2019-08-17 08:00:00,2019-08-18 07:00:00,137.0,schmitt,matilda,1,Direct,137.0,DE,2,0.0,daisy01.sunshine01+matilda.schmitt@gmail.com,1.012,63 +2019-08-05 13:56:03,Confirmed,BER-DBL,2019-08-18 15:00:00,2019-08-20 08:00:00,200.02,hã¼bl,paulina,2,Direct,220.0,DE,1,0.0,daisy01.sunshine01+paulina.hã¼bl@gmail.com,4.015,64 +2019-08-05 13:55:25,Confirmed,MUC-FAMILY,2019-08-18 08:00:00,2019-08-19 07:00:00,132.0,kasten,sky,1,Direct,182.0,DE,2,0.0,daisy01.sunshine01+sky.kasten@gmail.com,3.002,65 +2019-08-05 13:55:08,Confirmed,LND-FAMILY,2019-08-19 09:00:00,2019-08-20 08:00:00,136.0,auer,jerrod,1,Direct,136.0,GB,2,0.0,daisy01.sunshine01+jerrod.auer@gmail.com,3.001,66 +2019-08-05 13:55:26,Confirmed,MUC-DBL,2019-08-19 08:00:00,2019-08-20 07:00:00,122.0,dethloff,malik,1,Direct,122.0,DE,2,0.0,daisy01.sunshine01+malik.dethloff@gmail.com,1.008,67 +2019-08-05 13:55:35,Confirmed,BER-DBL,2019-08-19 15:00:00,2019-08-22 08:00:00,336.06,kesselring,darleen,3,Direct,396.0,DE,2,0.0,daisy01.sunshine01+darleen.kesselring@gmail.com,3.019,68 +2019-08-05 13:55:40,Confirmed,MUC-DBL,2019-08-19 08:00:00,2019-08-22 07:00:00,384.0,pletsch,sahra,3,Direct,384.0,DE,2,0.0,daisy01.sunshine01+sahra.pletsch@gmail.com,G.004,69 +2019-08-05 13:55:12,Confirmed,MUC-DBL,2019-08-20 08:00:00,2019-08-22 07:00:00,262.04,jonas,linus,2,Direct,322.0,DE,2,0.0,daisy01.sunshine01+linus.jonas@gmail.com,G.005,70 +2019-08-05 13:55:18,Confirmed,MUC-DBL,2019-08-21 08:00:00,2019-08-25 07:00:00,508.0,pã¶ge,ismail,4,Direct,508.0,DE,2,0.0,daisy01.sunshine01+ismail.pã¶ge@gmail.com,2.004,71 +2019-08-05 13:55:41,Confirmed,MUC-DBL,2019-08-21 08:00:00,2019-08-24 07:00:00,343.0,stenzel,smilla,3,Direct,343.0,DE,1,0.0,daisy01.sunshine01+smilla.stenzel@gmail.com,2.016,72 +2019-08-05 13:55:45,Confirmed,BER-DBL,2019-08-22 15:00:00,2019-08-28 08:00:00,644.12,langfeld,jeremie,6,Direct,764.0,DE,2,0.0,daisy01.sunshine01+jeremie.langfeld@gmail.com,2.020,73 +2019-08-05 13:56:02,Confirmed,MUC-DBL,2019-08-22 08:00:00,2019-08-25 07:00:00,325.0,schmuhl,ina,3,Direct,325.0,DE,1,0.0,daisy01.sunshine01+ina.schmuhl@gmail.com,2.009,74 +2019-08-05 13:55:29,Confirmed,LND-DBL,2019-08-24 09:00:00,2019-08-25 08:00:00,100.0,gerlach,erling,1,Direct,100.0,GB,1,0.0,daisy01.sunshine01+erling.gerlach@gmail.com,2.006,75 +2019-08-05 13:55:43,Confirmed,MUC-FAMILY,2019-08-24 08:00:00,2019-08-25 07:00:00,125.0,schniedermeier,livia,1,Direct,175.0,DE,2,0.0,daisy01.sunshine01+livia.schniedermeier@gmail.com,3.001,76 +2019-08-05 13:56:00,Confirmed,BER-DBL,2019-08-25 15:00:00,2019-08-26 08:00:00,110.02,diedrich,ivonne,1,Direct,130.0,DE,2,0.0,daisy01.sunshine01+ivonne.diedrich@gmail.com,1.016,77 +2019-08-05 13:55:19,Confirmed,BER-SGL,2019-08-25 15:00:00,2019-08-27 08:00:00,112.0,szendrei,paul,2,Direct,112.0,DE,1,0.0,daisy01.sunshine01+paul.szendrei@gmail.com,G.018,78 +2019-08-05 13:55:31,Confirmed,LND-SGL,2019-08-25 09:00:00,2019-08-26 08:00:00,96.0,wilkinson,kenya,1,Direct,96.0,GB,1,0.0,daisy01.sunshine01+kenya.wilkinson@gmail.com,G.002,79 +2019-08-05 13:55:35,Confirmed,MUC-DBL,2019-08-30 08:00:00,2019-09-01 07:00:00,257.04,amann,immanuel,2,Direct,317.0,DE,2,0.0,daisy01.sunshine01+immanuel.amann@gmail.com,1.015,80 +2019-08-05 13:55:13,Confirmed,LND-FAMILY,2019-08-30 09:00:00,2019-09-02 08:00:00,352.0,williamson,lupe,3,Direct,352.0,GB,1,0.0,daisy01.sunshine01+lupe.williamson@gmail.com,3.001,81 +2019-08-05 13:56:09,Confirmed,BER-DBL,2019-09-03 15:00:00,2019-09-05 08:00:00,253.0,krohn,valentino,2,Direct,253.0,DE,2,0.0,daisy01.sunshine01+valentino.krohn@gmail.com,1.016,82 +2019-08-05 13:55:36,Confirmed,MUC-DBL,2019-09-04 08:00:00,2019-09-08 07:00:00,503.04,lohre,youssef,4,Direct,563.0,DE,1,0.0,daisy01.sunshine01+youssef.lohre@gmail.com,1.012,83 +2019-08-05 13:55:27,Confirmed,LND-DBL,2019-09-04 09:00:00,2019-09-06 08:00:00,250.0,wiegand,amelia,2,Direct,250.0,GB,2,0.0,daisy01.sunshine01+amelia.wiegand@gmail.com,1.015,84 +2019-08-05 13:56:11,Confirmed,BER-DBL,2019-09-07 15:00:00,2019-09-11 08:00:00,466.0,brosch,darleen,4,Direct,466.0,DE,2,0.0,daisy01.sunshine01+darleen.brosch@gmail.com,2.019,85 +2019-08-05 13:56:15,Confirmed,MUC-DBL,2019-09-07 08:00:00,2019-09-09 07:00:00,250.0,heinze,janosch,2,Direct,250.0,DE,2,0.0,daisy01.sunshine01+janosch.heinze@gmail.com,1.014,86 +2019-08-05 13:55:46,Confirmed,LND-FAMILY,2019-09-08 09:00:00,2019-09-09 08:00:00,155.0,mante,kelvin,1,Direct,155.0,GB,2,0.0,daisy01.sunshine01+kelvin.mante@gmail.com,3.002,87 +2019-08-05 13:56:12,Confirmed,MUC-FAMILY,2019-09-17 08:00:00,2019-09-23 07:00:00,926.0,scherz,friederike,6,Direct,976.0,DE,2,0.0,daisy01.sunshine01+friederike.scherz@gmail.com,3.001,88 +2019-08-05 13:55:22,Confirmed,LND-FAMILY,2019-09-22 09:00:00,2019-09-23 08:00:00,147.0,kutch,kyra,1,Direct,147.0,GB,2,0.0,daisy01.sunshine01+kyra.kutch@gmail.com,3.001,89 +2019-08-05 13:56:16,Confirmed,LND-SGL,2019-09-24 09:00:00,2019-09-25 08:00:00,91.0,prosacco,maria,1,Direct,91.0,GB,1,0.0,daisy01.sunshine01+maria.prosacco@gmail.com,2.012,90 +2019-09-25 15:41:57,NoShow,,2019-09-25 15:40:00,2019-09-26 10:00:00,130.0,stegmayer,carina,1,Direct,235.0,DE,1,1.0,,,91 +2019-08-05 13:55:29,Confirmed,LND-DBL,2019-10-03 09:00:00,2019-10-07 08:00:00,551.08,lynch,carmelo,4,Direct,671.0,GB,2,0.0,daisy01.sunshine01+carmelo.lynch@gmail.com,2.011,92 +2019-08-05 13:55:16,Confirmed,MUC-SGL,2019-10-06 08:00:00,2019-10-07 07:00:00,85.0,braun,maira,1,Direct,85.0,DE,1,0.0,daisy01.sunshine01+maira.braun@gmail.com,2.001,93 +2019-08-05 13:56:06,Confirmed,MUC-FAMILY,2019-10-21 08:00:00,2019-10-23 07:00:00,306.0,bienasch,hermine,2,Direct,356.0,DE,2,0.0,daisy01.sunshine01+hermine.bienasch@gmail.com,3.002,94 +2019-08-05 13:55:28,Confirmed,MUC-DBL,2019-10-26 08:00:00,2019-10-28 08:00:00,273.0,polizzi,helin,2,Direct,273.0,DE,2,0.0,daisy01.sunshine01+helin.polizzi@gmail.com,2.005,95 +2019-08-05 13:56:11,Confirmed,LND-DBL,2019-11-06 10:00:00,2019-11-07 09:00:00,160.0,sawayn,gerda,1,Direct,160.0,GB,2,0.0,daisy01.sunshine01+gerda.sawayn@gmail.com,1.014,96 +2019-08-05 13:56:02,Confirmed,LND-FAMILY,2019-11-06 10:00:00,2019-11-07 09:00:00,145.0,witting,isabell,1,Direct,145.0,GB,1,0.0,daisy01.sunshine01+isabell.witting@gmail.com,3.002,97 +2019-08-05 13:55:44,Confirmed,BER-DBL,2019-11-08 16:00:00,2019-11-09 09:00:00,76.0,mehlorn,markus,1,Direct,76.0,DE,1,0.0,daisy01.sunshine01+markus.mehlorn@gmail.com,3.014,98 +2019-08-05 13:55:20,Confirmed,BER-DBL,2019-11-22 16:00:00,2019-11-23 09:00:00,93.0,spelmeyer,melina,1,Direct,93.0,DE,1,0.0,daisy01.sunshine01+melina.spelmeyer@gmail.com,1.020,99 +2019-08-05 13:55:58,Confirmed,LND-SGL,2019-12-27 10:00:00,2019-12-30 09:00:00,245.0,hagenes,joy,3,Direct,245.0,GB,1,0.0,daisy01.sunshine01+joy.hagenes@gmail.com,2.010,100 +2020-01-17 08:26:09,Canceled,,2020-01-17 09:00:00,2020-01-18 08:00:00,85.0,quoc,,1,Direct,85.0,,1,0.0,,,101 +2020-01-21 04:55:20,Confirmed,LND-FAMILY,2020-01-21 10:00:00,2020-01-22 09:00:00,102.0,quoc,,1,Direct,102.0,,1,0.0,,3.001,102 +2020-02-20 07:05:54,CheckedOut,BER-DBL,2020-02-20 16:00:00,2020-02-21 09:00:00,0.0,quoc,quoc,1,Direct,0.0,,1,0.0,,4.004,103 +2020-02-20 07:38:22,Confirmed,MUC-DBL,2020-02-29 09:00:00,2020-03-03 08:00:00,675.06,cao,hien,3,Direct,780.0,,2,0.0,,1.001,104 +2020-02-20 08:29:19,Confirmed,,2020-02-29 09:00:00,2020-03-01 08:00:00,245.0,cao,hien updated,1,Direct,245.0,,2,0.0,hien@the-hash.com,,105 +2020-03-19 04:45:45,Confirmed,,2020-03-19 09:00:00,2020-03-20 08:00:00,0.0,cao,hien,1,Direct,170.0,,4,0.0,,,104 +2020-03-19 03:26:52,Confirmed,,2020-03-19 03:23:00,2020-03-20 08:00:00,0.0,nguyen,quoc,2,Direct,189.98,,1,0.0,,,107 +2020-03-19 03:26:55,Confirmed,,2020-03-19 03:23:00,2020-03-20 08:00:00,0.0,nguyen,quoc,2,Direct,189.98,,1,0.0,,,107 +2020-03-19 04:55:19,Confirmed,,2020-03-28 09:00:00,2020-03-30 07:00:00,150.0,cao,hien,2,Direct,350.0,,1,1.0,,,104 +2020-05-14 07:54:23,CheckedOut,LND-SGL,2020-05-14 08:00:00,2020-05-15 08:00:00,80.0,cao,hien,1,Direct,170.0,VN,1,0.0,,1.003,104 +2020-05-14 08:02:09,Confirmed,,2020-05-14 09:00:00,2020-05-15 08:00:00,80.0,mante,kelvin,1,Direct,100.0,GB,1,0.0,daisy01.sunshine01+kelvin.mante@gmail.com,,87 +2020-05-14 07:26:22,Confirmed,LND-DBL,2020-05-14 07:24:00,2020-05-19 08:00:00,0.0,nguyen,quoc,6,Ibe,530.0,VN,1,0.0,quoc.nguyen.gia@gia.quoc.nguyen,1.005,112 +2020-05-14 08:23:21,Confirmed,LND-SGL,2020-05-14 09:00:00,2020-05-15 08:00:00,80.0,nguyen,quoc,1,Direct,100.0,VN,1,0.0,quoc.nguyen.gia@gia.quoc.nguyen,1.010,112 +2020-05-14 07:14:55,CheckedOut,LND-SGL,2020-05-14 07:14:00,2020-05-15 08:00:00,0.0,quoc,nguyeng,2,Direct,0.0,VN,1,0.0,quoc.nguyen.gia@gia.quoc.nguyen,G.002,114 +2020-05-15 07:49:48,Confirmed,,2020-05-15 15:00:00,2020-05-16 08:00:00,100.0,cao,hien,1,Direct,100.0,VN,1,0.0,,,104 +2020-05-14 08:22:40,Confirmed,LND-SGL,2020-05-16 09:00:00,2020-05-18 08:00:00,160.0,cao,hien,2,BookingCom,220.0,VN,1,0.0,,1.003,104 +2020-05-18 03:12:00,InHouse,BER-SGL,2020-05-18 08:00:00,2020-05-19 08:00:00,100.0,cao,hien,1,Direct,100.0,,1,0.0,,3.001,104 +2020-05-18 05:14:18,Confirmed,,2020-05-18 15:00:00,2020-05-19 08:00:00,100.0,cao,hien,1,Direct,100.0,VN,1,0.0,,,104 +2020-05-18 03:00:03,InHouse,BER-SGL,2020-05-18 08:00:00,2020-05-29 08:00:00,1100.0,nguyen,quoc,11,Direct,1100.0,VN,1,0.0,quoc.nguyen.gia@gia.quoc.nguyen,1.003,112 +2020-05-18 03:12:25,NoShow,,2020-05-18 15:00:00,2020-05-19 08:00:00,100.0,nguyen,quoc,1,Direct,100.0,,1,0.0,,,107 +2020-05-18 02:53:44,CheckedOut,LND-SGL,2020-05-18 08:00:00,2020-05-22 08:00:00,320.0,quoc,nguyeng,4,Direct,400.0,VN,1,0.0,quoc.nguyen.gia@gia.quoc.nguyen,1.007,114 +2020-05-19 04:30:43,Canceled,,2020-05-19 09:00:00,2020-05-20 08:00:00,80.0,nguyen,quoc,1,Direct,100.0,VN,1,0.0,quocq6hcm@gmail.com,,122 +2020-05-21 04:43:06,Confirmed,,2020-05-21 15:00:00,2020-05-29 08:00:00,811.5,quoc,nguyeng,8,Direct,1009.0,VN,1,0.0,quoc.nguyen.gia@gia.quoc.nguyen,,114 +2020-05-21 07:03:30,Confirmed,,2020-05-21 15:00:00,2020-05-27 08:00:00,574.0,quoc,nguyeng,6,Direct,941.5,VN,1,0.0,quoc.nguyen.gia@gia.quoc.nguyen,,114 +2020-05-21 09:28:09,Confirmed,,2020-05-21 15:00:00,2020-05-23 08:00:00,135.0,steinmetz,,2,Direct,140.0,,1,0.0,,,125 +2020-05-21 09:28:18,NoShow,,2020-05-21 15:00:00,2020-05-23 08:00:00,135.0,steinmetz,,2,Direct,140.0,,1,0.0,,,126 +2020-05-21 09:28:49,CheckedOut,,2020-05-21 15:00:00,2020-05-23 08:00:00,160.0,steinmetz,,2,Direct,215.0,,1,0.0,,,127 +2020-05-19 10:36:48,InHouse,LND-SGL,2020-05-26 09:00:00,2020-05-28 08:00:00,260.0,nguyen,quoc,2,Direct,260.0,VN,1,0.0,quocq6hcm@gmail.com,1.003,122 +2020-06-02 03:36:51,Canceled,,2020-06-02 15:00:00,2020-06-03 08:00:00,87.5,nguyen,tuan,1,Direct,145.0,,1,0.0,,,129 +2020-06-02 03:45:34,Confirmed,,2020-06-02 09:00:00,2020-06-03 08:00:00,80.0,nguyen - updated,quoc test,1,Direct,100.0,VN,1,0.0,quoc.nguyen.gia@gia.quoc.nguyen,,130 +2020-06-02 03:55:49,NoShow,,2020-06-04 15:00:00,2020-06-05 08:00:00,87.5,nguyen,tuan,1,Direct,145.0,,1,0.0,,,129 +2020-06-07 04:12:22,Confirmed,CENTRI-RFC09,2020-06-09 12:00:00,2020-06-10 11:00:00,100.0,nguyen,tuan,1,Ibe,100.0,,1,0.0,,R303,129 +2020-06-10 04:31:09,Confirmed,,2020-06-11 08:00:00,2020-06-13 07:00:00,51.0,doe,jon,2,Direct,131.0,GB,1,0.0,john.d@doe.com,,133 +2020-06-10 04:52:09,Confirmed,,2020-06-11 08:00:00,2020-06-13 07:00:00,51.0,doe,jon,2,Direct,131.0,GB,1,0.0,john.d@doe.com,,133 +2020-06-10 04:52:19,Confirmed,,2020-06-11 08:00:00,2020-06-13 07:00:00,51.0,doe,jon,2,Direct,131.0,GB,1,0.0,john.d@doe.com,,133 +2020-06-10 04:53:11,Confirmed,,2020-06-11 08:00:00,2020-06-13 07:00:00,51.0,doe,jon,2,Direct,131.0,GB,1,0.0,john.d@doe.com,,133 +2020-06-10 04:53:15,Confirmed,,2020-06-11 08:00:00,2020-06-13 07:00:00,51.0,doe,jon,2,Direct,131.0,GB,1,0.0,john.d@doe.com,,133 +2020-06-10 07:09:28,Confirmed,,2020-06-11 08:00:00,2020-06-13 07:00:00,51.0,doe,jon,2,Direct,131.0,GB,1,0.0,john.d@doe.com,,133 +2020-06-10 04:31:10,Confirmed,,2020-06-12 08:00:00,2020-06-14 07:00:00,240.0,steinmetz,eric,2,Direct,245.0,GB,1,0.0,eric.e@steinmetz.com,,139 +2020-06-10 04:52:09,Confirmed,,2020-06-12 08:00:00,2020-06-14 07:00:00,240.0,steinmetz,eric,2,Direct,245.0,GB,1,0.0,eric.e@steinmetz.com,,139 +2020-06-10 04:52:20,Confirmed,,2020-06-12 08:00:00,2020-06-14 07:00:00,240.0,steinmetz,eric,2,Direct,245.0,GB,1,0.0,eric.e@steinmetz.com,,139 +2020-06-10 04:53:12,Confirmed,,2020-06-12 08:00:00,2020-06-14 07:00:00,240.0,steinmetz,eric,2,Direct,245.0,GB,1,0.0,eric.e@steinmetz.com,,139 +2020-06-10 04:53:16,Confirmed,,2020-06-12 08:00:00,2020-06-14 07:00:00,240.0,steinmetz,eric,2,Direct,245.0,GB,1,0.0,eric.e@steinmetz.com,,139 +2020-06-10 07:09:33,Confirmed,,2020-06-12 08:00:00,2020-06-14 07:00:00,240.0,steinmetz,eric,2,Direct,245.0,GB,1,0.0,eric.e@steinmetz.com,,139 +2020-06-26 04:24:40,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,test,test,4,Ibe,492.0,,1,0.0,,,145 +2020-06-26 04:26:18,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,test,test,4,Ibe,492.0,,1,0.0,,,146 +2020-06-26 04:27:53,Canceled,CENTRI-RFC10,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,test,test,4,Ibe,492.0,,1,0.0,,R304,147 +2020-06-26 04:34:23,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,test,test,4,Ibe,492.0,,1,0.0,,,148 +2020-06-26 04:36:20,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,test,test,4,Ibe,492.0,,1,0.0,,,149 +2020-06-26 04:37:14,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,test,test,4,Ibe,492.0,,1,0.0,,,150 +2020-06-26 04:38:26,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,test,test,4,Ibe,492.0,,1,0.0,,,151 +2020-06-26 04:41:50,Canceled,,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,test,test,4,Ibe,492.0,,1,0.0,,,152 +2020-06-26 04:43:27,Canceled,CENTRI-RFC03,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,test,test,4,Ibe,492.0,,1,0.0,,R104,153 +2020-06-26 06:21:26,Confirmed,CENTRI-RFC03,2020-06-30 12:00:00,2020-07-04 11:00:00,492.0,test,test,4,Ibe,492.0,,1,0.0,,R104,154 +2020-06-17 10:14:34,Canceled,CENTRI-RFC09,2020-07-01 12:00:00,2020-07-03 11:00:00,128.0,lastname,tuan first name,2,Ibe,128.0,,2,0.0,,R303,155 +2020-06-17 10:14:35,Canceled,,2020-07-01 12:00:00,2020-07-03 11:00:00,128.0,lastname,tuan first name,2,Ibe,128.0,,2,0.0,,,155 +2020-06-17 10:27:10,Canceled,,2020-07-04 12:00:00,2020-07-06 11:00:00,128.0,lastname,tuan first name,2,Ibe,128.0,,2,0.0,,,155 +2020-06-17 10:27:11,Canceled,CENTRI-RFC03,2020-07-04 12:00:00,2020-07-06 11:00:00,128.0,lastname,tuan first name,2,Ibe,128.0,,2,0.0,,R104,155 +2020-07-07 12:01:40,Confirmed,CENTRI-RFC05,2020-07-08 12:00:00,2020-07-09 11:00:00,52.0,nguyen,tuan,1,ChannelManager,67.0,,1,0.0,,R105,129 +2020-07-07 12:16:28,Confirmed,CENTRI-RFC06,2020-07-08 12:00:00,2020-07-09 11:00:00,286.0,nguyen,tuan,1,ChannelManager,286.0,,1,0.0,,R205,129 +2020-07-07 12:16:29,Confirmed,CENTRI-RFC06,2020-07-08 12:00:00,2020-07-09 11:00:00,286.0,nguyen,tuan,1,ChannelManager,301.0,,1,2.0,,R203,129 +2020-06-29 12:58:45,Canceled,CENTRI-RFC05,2020-07-08 12:00:00,2020-07-09 11:00:00,52.0,nguyen,tuang,1,Ibe,62.0,,1,0.0,,R105,162 +2020-07-10 11:39:38,Confirmed,GVDTST2-SUITTUB,2020-07-10 11:39:38,2020-07-13 09:00:00,4283.0,nguyen,duy,3,ChannelManager,4633.0,,1,0.0,,PS-3,163 +2020-07-02 03:58:11,Canceled,,2020-07-20 12:00:00,2020-07-24 11:00:00,340.0,nguyen,quoc,4,Ibe,414.0,,1,0.0,,,107 +2020-07-02 04:00:14,Canceled,,2020-07-20 12:00:00,2020-07-24 11:00:00,240.0,nguyen,quoc,4,Ibe,314.0,,1,0.0,,,107 +2020-07-06 02:22:04,Canceled,CENTRI-RFC10,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,Ibe,635.0,,1,0.0,,R304,107 +2020-07-06 02:42:51,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,Homelike,640.0,,1,0.0,,,107 +2020-07-06 02:43:46,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,Expedia,640.0,,1,0.0,,,107 +2020-07-06 02:50:17,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,BookingCom,640.0,,1,0.0,,,107 +2020-07-06 02:53:42,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,BookingCom,640.0,,1,0.0,,,107 +2020-07-06 02:54:00,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,BookingCom,640.0,,1,0.0,,,107 +2020-07-06 02:54:05,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,BookingCom,640.0,,1,0.0,,,107 +2020-07-06 02:56:27,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,BookingCom,640.0,,1,0.0,,,107 +2020-07-06 02:59:32,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,BookingCom,640.0,,1,0.0,,,107 +2020-07-06 02:59:33,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,BookingCom,640.0,,1,0.0,,,107 +2020-07-06 03:28:36,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,Homelike,640.0,,1,0.0,,,107 +2020-07-06 03:28:37,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,Homelike,640.0,,1,0.0,,,107 +2020-07-06 07:42:10,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,ChannelManager,640.0,,1,0.0,,,107 +2020-07-06 07:42:11,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,nguyen,quoc,3,ChannelManager,640.0,,1,0.0,,,107 +2020-07-16 04:53:00,Confirmed,GVDCT1-BEDROOM,2020-08-01 07:00:00,2020-08-01 17:00:00,1235.0,nguyen,quoc,1,ChannelManager,1235.0,,1,0.0,,PS-3,107 +2020-07-10 11:17:18,Confirmed,GVDTST2-SUITE,2020-08-01 10:01:00,2020-08-02 09:00:00,1455.0,nguyen,tuan,1,ChannelManager,1455.0,,1,0.0,,GS-1,129 +2020-07-10 11:51:46,Confirmed,GVDTST2-SUITE,2020-08-01 10:01:00,2020-08-02 09:00:00,1275.0,nguyen,tuan,1,ChannelManager,1275.0,,1,0.0,,GS-6,129 +2020-07-10 11:54:42,Canceled,GVDTST2-SUITE,2020-08-02 10:01:00,2020-08-03 09:00:00,1275.0,nguyen,quang,1,ChannelManager,1275.0,,1,0.0,,GS-6,183 +2020-07-01 03:19:05,Canceled,CENTRI-RFC10,2020-08-02 12:00:00,2020-08-05 11:00:00,255.0,nguyen,quoc,3,Ibe,360.0,,1,0.0,,R304,107 +2020-07-01 03:23:40,Canceled,,2020-08-02 12:00:00,2020-08-05 11:00:00,272.0,nguyen,quoc,3,Ibe,377.0,,1,0.0,,,107 +2020-07-01 02:34:11,Canceled,CENTRI-RFC05,2020-08-04 12:00:00,2020-08-06 11:00:00,170.0,nguyen,quoc,2,Ibe,170.0,,1,0.0,,R105,107 +2020-07-01 02:44:22,Canceled,,2020-08-04 12:00:00,2020-08-06 11:00:00,152.0,nguyen,quoc,2,Ibe,152.0,,1,0.0,,,107 +2020-07-10 03:31:42,Confirmed,GVDTST2-SUITTUB,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,nguyen,quoc,2,ChannelManager,4490.0,,1,0.0,,PS-4,107 +2020-07-10 03:31:43,Confirmed,GVDTST2-SUITTUB,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,nguyen,quoc,2,ChannelManager,4090.0,,1,0.0,,PS-2,107 +2020-07-10 04:17:02,Confirmed,GVDTST2-SUITE,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,nguyen,tuan,2,ChannelManager,4090.0,,1,0.0,,GS-1,129 +2020-07-10 04:17:03,Confirmed,GVDTST2-SUITE,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,nguyen,tuan,2,ChannelManager,4490.0,,1,0.0,,GS-6,129 +2020-07-22 04:25:46,Confirmed,CENTRI-RFC10,2020-08-05 12:00:00,2020-08-08 11:00:00,421.0,etest,test,3,ChannelManager,421.0,,1,0.0,,R304,192 +2020-07-22 04:53:06,Confirmed,CENTRI-RFC02,2020-08-05 12:00:00,2020-08-08 11:00:00,755.0,test,test,3,ChannelManager,755.0,,1,0.0,,R102,193 +2020-07-22 04:55:08,Confirmed,CENTRI-RFC04,2020-08-05 12:00:00,2020-08-08 11:00:00,814.0,test,test,3,ChannelManager,814.0,,1,0.0,,R206,194 +2020-07-22 05:14:24,Confirmed,CENTRI-RFC06,2020-08-05 12:00:00,2020-08-08 11:00:00,967.0,test,test,3,ChannelManager,967.0,,1,0.0,,R204,195 +2020-07-16 05:09:44,Confirmed,GVDCT1-BEDROOM,2020-08-08 07:00:00,2020-08-08 17:00:00,1421.0,nguyen,quoc,1,ChannelManager,1421.0,,1,0.0,,PS-3,107 +2020-07-02 07:14:10,Confirmed,CENTRI-RFC10,2020-08-11 12:00:00,2020-08-14 11:00:00,510.0,nguyen,quoc,3,Ibe,603.0,,1,0.0,,R304,107 +2020-07-13 09:20:27,Confirmed,GVDTST2-SUITE,2020-08-11 10:01:00,2020-08-12 09:00:00,1250.0,nguyen thanh,quang,1,ChannelManager,1750.0,,2,0.0,,GS-6,198 +2020-07-20 04:40:32,Confirmed,GVDCT1-BEDROOM,2020-08-12 07:00:00,2020-08-14 17:00:00,4314.0,nguyen,quoc,3,ChannelManager,4314.0,,1,0.0,,GS-6,107 +2020-07-01 05:52:27,Canceled,CENTRI-RFC05,2020-08-12 12:00:00,2020-08-14 11:00:00,170.0,nguyen,quoc-test,2,Ibe,190.0,,1,0.0,,R105,200 +2020-07-09 10:37:25,Confirmed,GVDTST2-SUITE,2020-08-13 10:01:00,2020-08-14 09:00:00,1421.0,nguyen,quoc,1,ChannelManager,2761.0,,1,0.0,,GS-1,107 +2020-07-13 04:39:20,Confirmed,GVDTST2-SUITE,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,nguyen,quoc,2,ChannelManager,3000.0,,1,0.0,,GS-6,107 +2020-07-13 04:44:01,Confirmed,,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,nguyen,quoc,2,ChannelManager,3000.0,,1,0.0,,,107 +2020-07-13 04:48:05,Confirmed,,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,nguyen,quoc,2,ChannelManager,3000.0,,1,0.0,,,107 +2020-07-13 05:12:43,Confirmed,,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,nguyen,quoc,2,ChannelManager,3000.0,,1,0.0,,,107 +2020-07-17 12:28:05,Confirmed,GVDCT1-BEDROOM,2020-08-13 07:00:00,2020-08-13 17:00:00,1421.0,nguyen,quoc,1,ChannelManager,1421.0,,1,0.0,,PS-3,107 +2020-06-24 04:25:28,Canceled,,2020-08-15 12:00:00,2020-08-17 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,,207 +2020-06-24 04:25:28,Canceled,,2020-08-15 12:00:00,2020-08-17 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,208 +2020-06-24 04:25:29,Canceled,,2020-08-15 12:00:00,2020-08-17 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,209 +2020-07-02 04:15:41,Canceled,CENTRI-RFC05,2020-08-16 12:00:00,2020-08-19 11:00:00,255.0,nguyen,quoc,3,Ibe,348.0,,1,0.0,,R105,107 +2020-07-16 07:20:54,Confirmed,GVDCT1-BEDROOM,2020-08-19 07:00:00,2020-08-20 17:00:00,2470.0,q,q,2,ChannelManager,2470.0,,1,0.0,,PS-3,211 +2020-07-09 11:01:13,Confirmed,GVDTST2-SUITE,2020-08-21 10:01:00,2020-08-23 09:00:00,2876.0,nguyen,quoc,2,ChannelManager,2966.0,,1,0.0,,GS-1,107 +2020-06-24 04:51:32,Canceled,,2020-08-23 12:00:00,2020-08-25 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,213 +2020-06-24 04:51:32,Canceled,,2020-08-23 12:00:00,2020-08-25 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,214 +2020-06-24 04:51:34,Canceled,,2020-08-23 12:00:00,2020-08-25 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,,215 +2020-07-02 07:11:21,Canceled,CENTRI-RFC05,2020-08-24 12:00:00,2020-08-27 11:00:00,180.0,nguyen,quoc,3,Ibe,300.0,,1,0.0,,R105,107 +2020-07-09 09:40:01,Confirmed,GVDTST2-SUITE,2020-08-24 10:01:00,2020-08-27 09:00:00,4263.0,nguyen,quoc,3,ChannelManager,4263.0,,1,0.0,,GS-1,107 +2020-07-03 07:24:48,Confirmed,CENTRI-RFC10,2020-08-25 12:00:00,2020-08-28 11:00:00,510.0,nguyen,quoc,3,Ibe,576.0,,1,0.0,,R304,107 +2020-07-16 04:44:42,Confirmed,GVDCT1-BEDROOM,2020-08-26 07:00:00,2020-08-27 17:00:00,2842.0,nguyen,quoc,2,ChannelManager,2842.0,,1,0.0,,PS-3,107 +2020-06-24 04:58:53,Canceled,,2020-08-26 12:00:00,2020-08-28 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,,220 +2020-06-24 04:58:53,Canceled,,2020-08-26 12:00:00,2020-08-28 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,221 +2020-06-24 04:58:54,Canceled,,2020-08-26 12:00:00,2020-08-28 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,222 +2020-06-24 05:01:34,Canceled,,2020-08-29 12:00:00,2020-08-30 11:00:00,119.0,test,test,1,Ibe,119.0,,2,0.0,,,223 +2020-06-24 05:01:35,Canceled,,2020-08-29 12:00:00,2020-08-30 11:00:00,120.0,test,test,1,Ibe,120.0,,2,1.0,,,224 +2020-06-24 05:01:36,Canceled,,2020-08-29 12:00:00,2020-08-30 11:00:00,120.0,test,test,1,Ibe,120.0,,1,0.0,,,225 +2020-06-24 05:04:23,Canceled,,2020-09-01 12:00:00,2020-09-03 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,226 +2020-06-24 05:04:23,Canceled,,2020-09-01 12:00:00,2020-09-03 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,,227 +2020-06-24 05:04:24,Canceled,,2020-09-01 12:00:00,2020-09-03 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,228 +2020-06-24 05:06:53,Canceled,,2020-09-04 12:00:00,2020-09-05 11:00:00,120.0,test,test,1,Ibe,120.0,,2,1.0,,,229 +2020-06-24 05:06:54,Canceled,,2020-09-04 12:00:00,2020-09-05 11:00:00,120.0,test,test,1,Ibe,120.0,,1,0.0,,,230 +2020-06-24 05:06:54,Canceled,,2020-09-04 12:00:00,2020-09-05 11:00:00,119.0,test,test,1,Ibe,119.0,,2,0.0,,,231 +2020-06-24 05:11:50,Canceled,,2020-09-07 12:00:00,2020-09-09 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,232 +2020-06-24 05:11:50,Canceled,,2020-09-07 12:00:00,2020-09-09 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,233 +2020-06-24 05:11:50,Canceled,,2020-09-07 12:00:00,2020-09-09 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,,234 +2020-07-02 05:07:23,Canceled,CENTRI-RFC05,2020-09-09 12:00:00,2020-09-12 11:00:00,156.0,nguyen,quoc,3,Ibe,249.0,,1,0.0,,R105,107 +2020-07-02 05:12:08,Canceled,,2020-09-09 12:00:00,2020-09-12 11:00:00,156.0,nguyen,quoc,3,Ibe,249.0,,1,0.0,,,107 +2020-06-24 05:13:40,Canceled,,2020-09-11 12:00:00,2020-09-13 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,,237 +2020-06-24 05:13:41,Canceled,,2020-09-11 12:00:00,2020-09-13 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,238 +2020-06-24 05:13:41,Canceled,,2020-09-11 12:00:00,2020-09-13 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,239 +2020-06-24 05:24:06,Canceled,,2020-09-15 12:00:00,2020-09-17 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,240 +2020-06-24 05:24:07,Canceled,,2020-09-15 12:00:00,2020-09-17 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,,241 +2020-06-24 05:24:07,Canceled,,2020-09-15 12:00:00,2020-09-17 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,242 +2020-07-10 07:59:08,Confirmed,GVDTST2-SUITTUB,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,nguyen,quoc,1,ChannelManager,1930.0,,1,0.0,,PS-4,107 +2020-07-10 07:59:08,Confirmed,GVDTST2-SUITTUB,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,nguyen,quoc,1,ChannelManager,2310.0,,1,0.0,,PS-2,107 +2020-07-10 08:06:44,Confirmed,GVDTST2-SUITE,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,nguyen,quoc,1,ChannelManager,2310.0,,1,0.0,,GS-1,107 +2020-07-10 08:06:44,Confirmed,GVDTST2-SUITE,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,nguyen,quoc,1,ChannelManager,1930.0,,1,0.0,,GS-6,107 +2020-07-16 08:03:22,Confirmed,GVDCT1-BEDROOM,2020-09-17 07:00:00,2020-09-17 17:00:00,1391.0,nguyen,quoc,1,ChannelManager,1766.0,,1,0.0,,PS-3,107 +2020-06-24 05:27:41,Canceled,,2020-09-19 12:00:00,2020-09-21 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,248 +2020-06-24 05:27:42,Canceled,,2020-09-19 12:00:00,2020-09-21 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,,249 +2020-06-24 05:27:42,Canceled,,2020-09-19 12:00:00,2020-09-21 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,250 +2020-06-24 05:29:18,Canceled,,2020-09-23 12:00:00,2020-09-25 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,251 +2020-06-24 05:29:19,Canceled,,2020-09-23 12:00:00,2020-09-25 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,252 +2020-06-24 05:29:19,Canceled,,2020-09-23 12:00:00,2020-09-25 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,,253 +2020-06-24 07:18:56,Canceled,CENTRI-RFC10,2020-09-27 12:00:00,2020-09-29 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,R304,254 +2020-06-24 07:18:57,Canceled,,2020-09-27 12:00:00,2020-09-29 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,255 +2020-06-24 07:18:57,Canceled,,2020-09-27 12:00:00,2020-09-29 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,256 +2020-06-24 07:20:15,Canceled,,2020-10-01 12:00:00,2020-10-03 11:00:00,238.0,test,test,2,Ibe,238.0,,2,0.0,,,257 +2020-06-24 07:20:16,Canceled,,2020-10-01 12:00:00,2020-10-03 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,258 +2020-06-24 07:20:16,Canceled,,2020-10-01 12:00:00,2020-10-03 11:00:00,240.0,test,test,2,Ibe,240.0,,2,1.0,,,259 +2020-06-24 07:49:38,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,260 +2020-06-24 07:49:38,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,test,test,2,Ibe,250.0,,2,1.0,,,261 +2020-06-24 07:49:39,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,238.0,test,test,2,Ibe,248.0,,2,0.0,,,262 +2020-06-25 09:10:12,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,263 +2020-06-25 09:10:13,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,240.0,test,test,2,Ibe,250.0,,2,1.0,,,264 +2020-06-25 09:10:13,Canceled,,2020-10-04 12:00:00,2020-10-06 11:00:00,238.0,test,test,2,Ibe,248.0,,2,0.0,,,265 +2020-06-24 08:09:45,Canceled,,2020-10-07 12:00:00,2020-10-09 11:00:00,238.0,test,test,2,Ibe,248.0,,2,0.0,,,266 +2020-06-24 08:09:45,Canceled,,2020-10-07 12:00:00,2020-10-09 11:00:00,240.0,test,test,2,Ibe,240.0,,1,0.0,,,267 +2020-06-24 08:09:46,Canceled,,2020-10-07 12:00:00,2020-10-09 11:00:00,240.0,test,test,2,Ibe,250.0,,2,1.0,,,268 +2020-07-06 07:16:57,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:16:57,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:19:26,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:19:27,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:20:22,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:20:22,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:28:39,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:28:40,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:29:56,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:29:56,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:31:38,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:31:39,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:32:38,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:32:38,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:33:38,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-06 07:33:38,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,lastname,tuan first name,2,BookingCom,128.0,,2,0.0,,,155 +2020-07-21 06:45:50,Confirmed,GVDTST2-SUITTUB,2020-10-15 10:01:00,2020-10-18 09:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,PS-3,285 +2020-07-21 07:44:47,Confirmed,,2020-10-19 10:01:00,2020-10-22 09:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,286 +2020-07-09 11:04:24,Confirmed,GVDTST2-SUITTUB,2020-10-24 10:01:00,2020-10-27 10:00:00,5790.0,nguyen,tuan,3,ChannelManager,6720.0,,1,0.0,,PS-4,129 +2020-07-09 11:04:24,Confirmed,GVDTST2-SUITTUB,2020-10-24 10:01:00,2020-10-27 10:00:00,5790.0,nguyen,tuan,3,ChannelManager,5790.0,,2,0.0,,PS-2,129 +2020-07-06 11:52:07,Confirmed,CENTRI-RFC03,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,nguyen,quoc,2,ChannelManager,478.0,,1,0.0,,R104,107 +2020-07-06 11:58:40,Confirmed,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,nguyen,quoc,2,ChannelManager,478.0,,1,0.0,,,107 +2020-07-06 11:59:48,Confirmed,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,nguyen,quoc,2,ChannelManager,478.0,,1,0.0,,,107 +2020-07-06 12:00:55,Confirmed,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,nguyen,quoc,2,ChannelManager,478.0,,1,0.0,,,107 +2020-07-06 12:08:08,Confirmed,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,nguyen,quoc,2,ChannelManager,478.0,,1,0.0,,,107 +2020-07-06 12:09:00,Confirmed,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,nguyen,quoc,2,ChannelManager,478.0,,1,0.0,,,107 +2020-07-21 09:04:27,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,295 +2020-07-21 09:11:46,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,296 +2020-07-21 09:22:55,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,297 +2020-07-21 09:25:07,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,298 +2020-07-21 11:01:33,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,299 +2020-07-21 11:04:41,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,300 +2020-07-21 11:53:02,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,301 +2020-07-21 11:55:40,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,302 +2020-07-21 11:58:46,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,303 +2020-07-21 12:00:14,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,304 +2020-07-21 12:08:01,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,305 +2020-07-21 12:46:15,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,306 +2020-07-21 12:47:12,Confirmed,,2020-11-09 11:01:00,2020-11-12 10:00:00,4155.0,q,q,3,ChannelManager,4335.0,,1,0.0,,,307 +2020-07-10 03:25:39,Confirmed,GVDTST2-SUITE,2020-12-07 11:01:00,2020-12-10 10:00:00,4110.0,nguyen,quoc,3,ChannelManager,4370.0,,2,0.0,,GS-1,107 +2020-12-16 04:32:03,Confirmed,,2020-12-19 16:00:00,2020-12-20 09:00:00,62.5,cao,hien,1,Direct,170.0,VN,1,0.0,,,104 +2020-06-17 07:47:13,Confirmed,,2020-12-19 13:00:00,2020-12-21 12:00:00,128.0,lastname,tuan first name,2,Ibe,128.0,,2,0.0,,,155 +2020-06-17 07:47:14,Confirmed,,2020-12-19 13:00:00,2020-12-21 12:00:00,128.0,lastname,tuan first name,2,Ibe,128.0,,2,0.0,,,155 +2020-06-17 07:43:26,Confirmed,,2020-12-21 13:00:00,2020-12-23 12:00:00,128.0,lastname,tuan first name,2,Ibe,128.0,,2,0.0,,,155 +2020-06-17 07:39:37,Confirmed,,2020-12-23 13:00:00,2020-12-24 12:00:00,99.0,lastname,tuan first name,1,Ibe,99.0,,2,0.0,,,155 +2020-06-17 07:36:25,Confirmed,CENTRI-RFC09,2020-12-24 13:00:00,2020-12-25 12:00:00,99.0,lastname,tuan first name,1,Ibe,99.0,,2,0.0,,R303,155 +2020-05-14 07:39:18,Canceled,,2021-01-01 10:00:00,2021-01-06 09:00:00,900.0,cao,hien,5,Direct,1000.0,,1,0.0,,,104 +2020-07-22 04:51:14,Confirmed,CENTRI-RFC05,2021-01-01 13:00:00,2021-01-04 12:00:00,136.0,q,q,3,ChannelManager,136.0,,1,0.0,,R201,316 +2020-05-08 03:24:55,Confirmed,,2021-03-03 10:00:00,2021-03-06 09:00:00,0.0,nguyen,quoc,3,Direct,150.0,,2,0.0,,,107 diff --git a/ai/storage/test-file-id-input/final_output.json b/ai/storage/test-file-id-input/final_output.json new file mode 100644 index 0000000..29836bc --- /dev/null +++ b/ai/storage/test-file-id-input/final_output.json @@ -0,0 +1 @@ +[{"LastName":"crona","FirstName":"aliya","Email":"daisy01.sunshine01+aliya.crona@gmail.com","GuestID":60,"LTV_Class":1.0,"CLV_Low_Prob":1.0,"CLV_Mid_Prob":0.0,"CLV_High_Prob":0.0,"Guest_Type":"1st-Time Guest"},{"LastName":"mante","FirstName":"kelvin","Email":"daisy01.sunshine01+kelvin.mante@gmail.com","GuestID":87,"LTV_Class":"1","CLV_Low_Prob":1.0,"CLV_Mid_Prob":0.0,"CLV_High_Prob":0.0,"Guest_Type":"Returning Guest"},{"LastName":"cao","FirstName":"hien","Email":null,"GuestID":104,"LTV_Class":"2","CLV_Low_Prob":0.0,"CLV_Mid_Prob":1.0,"CLV_High_Prob":0.0,"Guest_Type":"Returning Guest"},{"LastName":"nguyen","FirstName":"quoc","Email":null,"GuestID":107,"LTV_Class":"3","CLV_Low_Prob":0.0,"CLV_Mid_Prob":0.0,"CLV_High_Prob":1.0,"Guest_Type":"Returning Guest"},{"LastName":"nguyen","FirstName":"quoc","Email":"quoc.nguyen.gia@gia.quoc.nguyen","GuestID":112,"LTV_Class":"1","CLV_Low_Prob":1.0,"CLV_Mid_Prob":0.0,"CLV_High_Prob":0.0,"Guest_Type":"Returning Guest"},{"LastName":"quoc","FirstName":"nguyeng","Email":"quoc.nguyen.gia@gia.quoc.nguyen","GuestID":114,"LTV_Class":"1","CLV_Low_Prob":1.0,"CLV_Mid_Prob":0.0,"CLV_High_Prob":0.0,"Guest_Type":"Returning Guest"},{"LastName":"nguyen","FirstName":"quoc","Email":"quocq6hcm@gmail.com","GuestID":122,"LTV_Class":"1","CLV_Low_Prob":0.3333333433,"CLV_Mid_Prob":0.3333333433,"CLV_High_Prob":0.3333333433,"Guest_Type":"Returning Guest"},{"LastName":"nguyen","FirstName":"tuan","Email":null,"GuestID":129,"LTV_Class":"1","CLV_Low_Prob":0.3333333433,"CLV_Mid_Prob":0.3333333433,"CLV_High_Prob":0.3333333433,"Guest_Type":"Returning Guest"},{"LastName":"lastname","FirstName":"tuan first name","Email":null,"GuestID":155,"LTV_Class":"1","CLV_Low_Prob":0.3333333433,"CLV_Mid_Prob":0.3333333433,"CLV_High_Prob":0.3333333433,"Guest_Type":"Returning Guest"}] \ No newline at end of file diff --git a/ai/storage/test-file-id-input/potential_model_output.csv b/ai/storage/test-file-id-input/potential_model_output.csv new file mode 100644 index 0000000..7ca7f08 --- /dev/null +++ b/ai/storage/test-file-id-input/potential_model_output.csv @@ -0,0 +1,203 @@ +GuestID,LTV_Class,High_Class,Low_Class,Mid_Class,Guest_Type +0,-1.0,,,,Ignore 1st-Time Guest +1,-1.0,,,,Ignore 1st-Time Guest +2,-1.0,,,,Ignore 1st-Time Guest +3,-1.0,,,,Ignore 1st-Time Guest +4,-1.0,,,,Ignore 1st-Time Guest +5,-1.0,,,,Ignore 1st-Time Guest +6,-1.0,,,,Ignore 1st-Time Guest +7,-1.0,,,,Ignore 1st-Time Guest +8,-1.0,,,,Ignore 1st-Time Guest +9,-1.0,,,,Ignore 1st-Time Guest +10,-1.0,,,,Ignore 1st-Time Guest +11,-1.0,,,,Ignore 1st-Time Guest +12,-1.0,,,,Ignore 1st-Time Guest +13,-1.0,,,,Ignore 1st-Time Guest +14,-1.0,,,,Ignore 1st-Time Guest +15,-1.0,,,,Ignore 1st-Time Guest +16,-1.0,,,,Ignore 1st-Time Guest +17,-1.0,,,,Ignore 1st-Time Guest +18,-1.0,,,,Ignore 1st-Time Guest +19,-1.0,,,,Ignore 1st-Time Guest +20,-1.0,,,,Ignore 1st-Time Guest +21,-1.0,,,,Ignore 1st-Time Guest +22,-1.0,,,,Ignore 1st-Time Guest +23,-1.0,,,,Ignore 1st-Time Guest +24,-1.0,,,,Ignore 1st-Time Guest +25,-1.0,,,,Ignore 1st-Time Guest +26,-1.0,,,,Ignore 1st-Time Guest +27,-1.0,,,,Ignore 1st-Time Guest +28,-1.0,,,,Ignore 1st-Time Guest +29,-1.0,,,,Ignore 1st-Time Guest +30,-1.0,,,,Ignore 1st-Time Guest +31,-1.0,,,,Ignore 1st-Time Guest +32,-1.0,,,,Ignore 1st-Time Guest +33,-1.0,,,,Ignore 1st-Time Guest +34,-1.0,,,,Ignore 1st-Time Guest +35,-1.0,,,,Ignore 1st-Time Guest +36,-1.0,,,,Ignore 1st-Time Guest +37,-1.0,,,,Ignore 1st-Time Guest +38,-1.0,,,,Ignore 1st-Time Guest +39,-1.0,,,,Ignore 1st-Time Guest +40,-1.0,,,,Ignore 1st-Time Guest +41,-1.0,,,,Ignore 1st-Time Guest +42,-1.0,,,,Ignore 1st-Time Guest +43,-1.0,,,,Ignore 1st-Time Guest +44,-1.0,,,,Ignore 1st-Time Guest +45,-1.0,,,,Ignore 1st-Time Guest +46,-1.0,,,,Ignore 1st-Time Guest +47,-1.0,,,,Ignore 1st-Time Guest +48,-1.0,,,,Ignore 1st-Time Guest +49,-1.0,,,,Ignore 1st-Time Guest +50,-1.0,,,,Ignore 1st-Time Guest +51,-1.0,,,,Ignore 1st-Time Guest +52,-1.0,,,,Ignore 1st-Time Guest +53,-1.0,,,,Ignore 1st-Time Guest +54,-1.0,,,,Ignore 1st-Time Guest +55,-1.0,,,,Ignore 1st-Time Guest +56,-1.0,,,,Ignore 1st-Time Guest +57,-1.0,,,,Ignore 1st-Time Guest +58,-1.0,,,,Ignore 1st-Time Guest +59,-1.0,,,,Ignore 1st-Time Guest +60,1.0,0.0,1.0,0.0,1st-Time Guest +61,-1.0,,,,Ignore 1st-Time Guest +62,-1.0,,,,Ignore 1st-Time Guest +63,-1.0,,,,Ignore 1st-Time Guest +64,-1.0,,,,Ignore 1st-Time Guest +65,-1.0,,,,Ignore 1st-Time Guest +66,-1.0,,,,Ignore 1st-Time Guest +67,-1.0,,,,Ignore 1st-Time Guest +68,-1.0,,,,Ignore 1st-Time Guest +69,-1.0,,,,Ignore 1st-Time Guest +70,-1.0,,,,Ignore 1st-Time Guest +71,-1.0,,,,Ignore 1st-Time Guest +72,-1.0,,,,Ignore 1st-Time Guest +73,-1.0,,,,Ignore 1st-Time Guest +74,-1.0,,,,Ignore 1st-Time Guest +75,-1.0,,,,Ignore 1st-Time Guest +76,-1.0,,,,Ignore 1st-Time Guest +77,-1.0,,,,Ignore 1st-Time Guest +78,-1.0,,,,Ignore 1st-Time Guest +79,-1.0,,,,Ignore 1st-Time Guest +80,-1.0,,,,Ignore 1st-Time Guest +81,-1.0,,,,Ignore 1st-Time Guest +82,-1.0,,,,Ignore 1st-Time Guest +83,-1.0,,,,Ignore 1st-Time Guest +84,-1.0,,,,Ignore 1st-Time Guest +85,-1.0,,,,Ignore 1st-Time Guest +86,-1.0,,,,Ignore 1st-Time Guest +87,1.0,0.0,1.0,0.0,Returning Guest +88,-1.0,,,,Ignore 1st-Time Guest +89,-1.0,,,,Ignore 1st-Time Guest +90,-1.0,,,,Ignore 1st-Time Guest +91,-1.0,,,,Ignore 1st-Time Guest +92,-1.0,,,,Ignore 1st-Time Guest +93,-1.0,,,,Ignore 1st-Time Guest +94,-1.0,,,,Ignore 1st-Time Guest +95,-1.0,,,,Ignore 1st-Time Guest +96,-1.0,,,,Ignore 1st-Time Guest +97,-1.0,,,,Ignore 1st-Time Guest +98,-1.0,,,,Ignore 1st-Time Guest +99,-1.0,,,,Ignore 1st-Time Guest +100,-1.0,,,,Ignore 1st-Time Guest +101,-1.0,,,,Ignore 1st-Time Guest +102,-1.0,,,,Ignore 1st-Time Guest +103,-1.0,,,,Ignore 1st-Time Guest +104,2.0,,,,Returning Guest +105,-1.0,,,,Ignore 1st-Time Guest +107,3.0,,,,Returning Guest +112,1.0,,,,Returning Guest +114,1.0,,,,Returning Guest +122,1.0,,,,Returning Guest +125,-1.0,,,,Ignore 1st-Time Guest +126,-1.0,,,,Ignore 1st-Time Guest +127,-1.0,,,,Ignore 1st-Time Guest +129,1.0,,,,Returning Guest +130,-1.0,,,,Ignore 1st-Time Guest +133,-1.0,,,,Ignore 1st-Time Guest +139,-1.0,,,,Ignore 1st-Time Guest +145,-1.0,,,,Ignore 1st-Time Guest +146,-1.0,,,,Ignore 1st-Time Guest +147,-1.0,,,,Ignore 1st-Time Guest +148,-1.0,,,,Ignore 1st-Time Guest +149,-1.0,,,,Ignore 1st-Time Guest +150,-1.0,,,,Ignore 1st-Time Guest +151,-1.0,,,,Ignore 1st-Time Guest +152,-1.0,,,,Ignore 1st-Time Guest +153,-1.0,,,,Ignore 1st-Time Guest +154,-1.0,,,,Ignore 1st-Time Guest +155,1.0,,,,Returning Guest +162,-1.0,,,,Ignore 1st-Time Guest +163,-1.0,,,,Ignore 1st-Time Guest +183,-1.0,,,,Ignore 1st-Time Guest +192,-1.0,,,,Ignore 1st-Time Guest +193,-1.0,,,,Ignore 1st-Time Guest +194,-1.0,,,,Ignore 1st-Time Guest +195,-1.0,,,,Ignore 1st-Time Guest +198,-1.0,,,,Ignore 1st-Time Guest +200,-1.0,,,,Ignore 1st-Time Guest +207,-1.0,,,,Ignore 1st-Time Guest +208,-1.0,,,,Ignore 1st-Time Guest +209,-1.0,,,,Ignore 1st-Time Guest +211,-1.0,,,,Ignore 1st-Time Guest +213,-1.0,,,,Ignore 1st-Time Guest +214,-1.0,,,,Ignore 1st-Time Guest +215,-1.0,,,,Ignore 1st-Time Guest +220,-1.0,,,,Ignore 1st-Time Guest +221,-1.0,,,,Ignore 1st-Time Guest +222,-1.0,,,,Ignore 1st-Time Guest +223,-1.0,,,,Ignore 1st-Time Guest +224,-1.0,,,,Ignore 1st-Time Guest +225,-1.0,,,,Ignore 1st-Time Guest +226,-1.0,,,,Ignore 1st-Time Guest +227,-1.0,,,,Ignore 1st-Time Guest +228,-1.0,,,,Ignore 1st-Time Guest +229,-1.0,,,,Ignore 1st-Time Guest +230,-1.0,,,,Ignore 1st-Time Guest +231,-1.0,,,,Ignore 1st-Time Guest +232,-1.0,,,,Ignore 1st-Time Guest +233,-1.0,,,,Ignore 1st-Time Guest +234,-1.0,,,,Ignore 1st-Time Guest +237,-1.0,,,,Ignore 1st-Time Guest +238,-1.0,,,,Ignore 1st-Time Guest +239,-1.0,,,,Ignore 1st-Time Guest +240,-1.0,,,,Ignore 1st-Time Guest +241,-1.0,,,,Ignore 1st-Time Guest +242,-1.0,,,,Ignore 1st-Time Guest +248,-1.0,,,,Ignore 1st-Time Guest +249,-1.0,,,,Ignore 1st-Time Guest +250,-1.0,,,,Ignore 1st-Time Guest +251,-1.0,,,,Ignore 1st-Time Guest +252,-1.0,,,,Ignore 1st-Time Guest +253,-1.0,,,,Ignore 1st-Time Guest +254,-1.0,,,,Ignore 1st-Time Guest +255,-1.0,,,,Ignore 1st-Time Guest +256,-1.0,,,,Ignore 1st-Time Guest +257,-1.0,,,,Ignore 1st-Time Guest +258,-1.0,,,,Ignore 1st-Time Guest +259,-1.0,,,,Ignore 1st-Time Guest +260,-1.0,,,,Ignore 1st-Time Guest +261,-1.0,,,,Ignore 1st-Time Guest +262,-1.0,,,,Ignore 1st-Time Guest +263,-1.0,,,,Ignore 1st-Time Guest +264,-1.0,,,,Ignore 1st-Time Guest +265,-1.0,,,,Ignore 1st-Time Guest +266,-1.0,,,,Ignore 1st-Time Guest +267,-1.0,,,,Ignore 1st-Time Guest +268,-1.0,,,,Ignore 1st-Time Guest +285,-1.0,,,,Ignore 1st-Time Guest +286,-1.0,,,,Ignore 1st-Time Guest +295,-1.0,,,,Ignore 1st-Time Guest +296,-1.0,,,,Ignore 1st-Time Guest +297,-1.0,,,,Ignore 1st-Time Guest +298,-1.0,,,,Ignore 1st-Time Guest +299,-1.0,,,,Ignore 1st-Time Guest +300,-1.0,,,,Ignore 1st-Time Guest +301,-1.0,,,,Ignore 1st-Time Guest +302,-1.0,,,,Ignore 1st-Time Guest +303,-1.0,,,,Ignore 1st-Time Guest +304,-1.0,,,,Ignore 1st-Time Guest +305,-1.0,,,,Ignore 1st-Time Guest +306,-1.0,,,,Ignore 1st-Time Guest +307,-1.0,,,,Ignore 1st-Time Guest +316,-1.0,,,,Ignore 1st-Time Guest diff --git a/ai/storage/test-file-id-input/returning_guests.csv b/ai/storage/test-file-id-input/returning_guests.csv new file mode 100644 index 0000000..ab27966 --- /dev/null +++ b/ai/storage/test-file-id-input/returning_guests.csv @@ -0,0 +1,115 @@ +CreatedDate,Status,RoomGroupID,ArrivalDate,DepartureDate,RoomPrice,Nights,Channel,TotalPayment,Country,Adults,Children,RoomNo,GuestID,NumberOfArrivals,NumberOfRooms +2019-08-05 13:55:46,Confirmed,LND-FAMILY,2019-09-08 09:00:00,2019-09-09 08:00:00,155.0,1,Direct,155.0,GB,2,0.0,3.002,87,2,1 +2020-05-14 08:02:09,Confirmed,,2020-05-14 09:00:00,2020-05-15 08:00:00,80.0,1,Direct,100.0,GB,1,0.0,,87,2,1 +2020-02-20 07:38:22,Confirmed,MUC-DBL,2020-02-29 09:00:00,2020-03-03 08:00:00,675.06,3,Direct,780.0,,2,0.0,1.001,104,10,1 +2020-03-19 04:45:45,Confirmed,,2020-03-19 09:00:00,2020-03-20 08:00:00,0.0,1,Direct,170.0,,4,0.0,,104,10,1 +2020-03-19 04:55:19,Confirmed,,2020-03-28 09:00:00,2020-03-30 07:00:00,150.0,2,Direct,350.0,,1,1.0,,104,10,1 +2020-05-14 07:54:23,CheckedOut,LND-SGL,2020-05-14 08:00:00,2020-05-15 08:00:00,80.0,1,Direct,170.0,VN,1,0.0,1.003,104,10,1 +2020-05-15 07:49:48,Confirmed,,2020-05-15 15:00:00,2020-05-16 08:00:00,100.0,1,Direct,100.0,VN,1,0.0,,104,10,1 +2020-05-14 08:22:40,Confirmed,LND-SGL,2020-05-16 09:00:00,2020-05-18 08:00:00,160.0,2,BookingCom,220.0,VN,1,0.0,1.003,104,10,1 +2020-05-18 03:12:00,InHouse,BER-SGL,2020-05-18 08:00:00,2020-05-19 08:00:00,100.0,1,Direct,100.0,,1,0.0,3.001,104,10,1 +2020-05-18 05:14:18,Confirmed,,2020-05-18 15:00:00,2020-05-19 08:00:00,100.0,1,Direct,100.0,VN,1,0.0,,104,10,1 +2020-12-16 04:32:03,Confirmed,,2020-12-19 16:00:00,2020-12-20 09:00:00,62.5,1,Direct,170.0,VN,1,0.0,,104,10,1 +2020-05-14 07:39:18,Canceled,,2021-01-01 10:00:00,2021-01-06 09:00:00,900.0,5,Direct,1000.0,,1,0.0,,104,10,1 +2020-03-19 03:26:52,Confirmed,,2020-03-19 03:23:00,2020-03-20 08:00:00,0.0,2,Direct,189.98,,1,0.0,,107,25,2 +2020-03-19 03:26:55,Confirmed,,2020-03-19 03:23:00,2020-03-20 08:00:00,0.0,2,Direct,189.98,,1,0.0,,107,25,2 +2020-05-18 03:12:25,NoShow,,2020-05-18 15:00:00,2020-05-19 08:00:00,100.0,1,Direct,100.0,,1,0.0,,107,25,1 +2020-07-02 03:58:11,Canceled,,2020-07-20 12:00:00,2020-07-24 11:00:00,340.0,4,Ibe,414.0,,1,0.0,,107,25,2 +2020-07-02 04:00:14,Canceled,,2020-07-20 12:00:00,2020-07-24 11:00:00,240.0,4,Ibe,314.0,,1,0.0,,107,25,2 +2020-07-06 02:22:04,Canceled,CENTRI-RFC10,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,Ibe,635.0,,1,0.0,R304,107,25,14 +2020-07-06 02:42:51,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,Homelike,640.0,,1,0.0,,107,25,14 +2020-07-06 02:43:46,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,Expedia,640.0,,1,0.0,,107,25,14 +2020-07-06 02:50:17,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,BookingCom,640.0,,1,0.0,,107,25,14 +2020-07-06 02:53:42,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,BookingCom,640.0,,1,0.0,,107,25,14 +2020-07-06 02:54:00,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,BookingCom,640.0,,1,0.0,,107,25,14 +2020-07-06 02:54:05,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,BookingCom,640.0,,1,0.0,,107,25,14 +2020-07-06 02:56:27,Canceled,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,BookingCom,640.0,,1,0.0,,107,25,14 +2020-07-06 02:59:32,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,BookingCom,640.0,,1,0.0,,107,25,14 +2020-07-06 02:59:33,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,BookingCom,640.0,,1,0.0,,107,25,14 +2020-07-06 03:28:36,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,Homelike,640.0,,1,0.0,,107,25,14 +2020-07-06 03:28:37,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,Homelike,640.0,,1,0.0,,107,25,14 +2020-07-06 07:42:10,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,ChannelManager,640.0,,1,0.0,,107,25,14 +2020-07-06 07:42:11,Confirmed,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,3,ChannelManager,640.0,,1,0.0,,107,25,14 +2020-07-16 04:53:00,Confirmed,GVDCT1-BEDROOM,2020-08-01 07:00:00,2020-08-01 17:00:00,1235.0,1,ChannelManager,1235.0,,1,0.0,PS-3,107,25,1 +2020-07-01 03:19:05,Canceled,CENTRI-RFC10,2020-08-02 12:00:00,2020-08-05 11:00:00,255.0,3,Ibe,360.0,,1,0.0,R304,107,25,2 +2020-07-01 03:23:40,Canceled,,2020-08-02 12:00:00,2020-08-05 11:00:00,272.0,3,Ibe,377.0,,1,0.0,,107,25,2 +2020-07-01 02:34:11,Canceled,CENTRI-RFC05,2020-08-04 12:00:00,2020-08-06 11:00:00,170.0,2,Ibe,170.0,,1,0.0,R105,107,25,2 +2020-07-01 02:44:22,Canceled,,2020-08-04 12:00:00,2020-08-06 11:00:00,152.0,2,Ibe,152.0,,1,0.0,,107,25,2 +2020-07-10 03:31:42,Confirmed,GVDTST2-SUITTUB,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,2,ChannelManager,4490.0,,1,0.0,PS-4,107,25,2 +2020-07-10 03:31:43,Confirmed,GVDTST2-SUITTUB,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,2,ChannelManager,4090.0,,1,0.0,PS-2,107,25,2 +2020-07-16 05:09:44,Confirmed,GVDCT1-BEDROOM,2020-08-08 07:00:00,2020-08-08 17:00:00,1421.0,1,ChannelManager,1421.0,,1,0.0,PS-3,107,25,1 +2020-07-02 07:14:10,Confirmed,CENTRI-RFC10,2020-08-11 12:00:00,2020-08-14 11:00:00,510.0,3,Ibe,603.0,,1,0.0,R304,107,25,1 +2020-07-20 04:40:32,Confirmed,GVDCT1-BEDROOM,2020-08-12 07:00:00,2020-08-14 17:00:00,4314.0,3,ChannelManager,4314.0,,1,0.0,GS-6,107,25,1 +2020-07-09 10:37:25,Confirmed,GVDTST2-SUITE,2020-08-13 10:01:00,2020-08-14 09:00:00,1421.0,1,ChannelManager,2761.0,,1,0.0,GS-1,107,25,5 +2020-07-13 04:39:20,Confirmed,GVDTST2-SUITE,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,2,ChannelManager,3000.0,,1,0.0,GS-6,107,25,5 +2020-07-13 04:44:01,Confirmed,,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,2,ChannelManager,3000.0,,1,0.0,,107,25,5 +2020-07-13 04:48:05,Confirmed,,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,2,ChannelManager,3000.0,,1,0.0,,107,25,5 +2020-07-13 05:12:43,Confirmed,,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,2,ChannelManager,3000.0,,1,0.0,,107,25,5 +2020-07-17 12:28:05,Confirmed,GVDCT1-BEDROOM,2020-08-13 07:00:00,2020-08-13 17:00:00,1421.0,1,ChannelManager,1421.0,,1,0.0,PS-3,107,25,1 +2020-07-02 04:15:41,Canceled,CENTRI-RFC05,2020-08-16 12:00:00,2020-08-19 11:00:00,255.0,3,Ibe,348.0,,1,0.0,R105,107,25,1 +2020-07-09 11:01:13,Confirmed,GVDTST2-SUITE,2020-08-21 10:01:00,2020-08-23 09:00:00,2876.0,2,ChannelManager,2966.0,,1,0.0,GS-1,107,25,1 +2020-07-02 07:11:21,Canceled,CENTRI-RFC05,2020-08-24 12:00:00,2020-08-27 11:00:00,180.0,3,Ibe,300.0,,1,0.0,R105,107,25,1 +2020-07-09 09:40:01,Confirmed,GVDTST2-SUITE,2020-08-24 10:01:00,2020-08-27 09:00:00,4263.0,3,ChannelManager,4263.0,,1,0.0,GS-1,107,25,1 +2020-07-03 07:24:48,Confirmed,CENTRI-RFC10,2020-08-25 12:00:00,2020-08-28 11:00:00,510.0,3,Ibe,576.0,,1,0.0,R304,107,25,1 +2020-07-16 04:44:42,Confirmed,GVDCT1-BEDROOM,2020-08-26 07:00:00,2020-08-27 17:00:00,2842.0,2,ChannelManager,2842.0,,1,0.0,PS-3,107,25,1 +2020-07-02 05:07:23,Canceled,CENTRI-RFC05,2020-09-09 12:00:00,2020-09-12 11:00:00,156.0,3,Ibe,249.0,,1,0.0,R105,107,25,2 +2020-07-02 05:12:08,Canceled,,2020-09-09 12:00:00,2020-09-12 11:00:00,156.0,3,Ibe,249.0,,1,0.0,,107,25,2 +2020-07-10 07:59:08,Confirmed,GVDTST2-SUITTUB,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,1,ChannelManager,1930.0,,1,0.0,PS-4,107,25,4 +2020-07-10 07:59:08,Confirmed,GVDTST2-SUITTUB,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,1,ChannelManager,2310.0,,1,0.0,PS-2,107,25,4 +2020-07-10 08:06:44,Confirmed,GVDTST2-SUITE,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,1,ChannelManager,2310.0,,1,0.0,GS-1,107,25,4 +2020-07-10 08:06:44,Confirmed,GVDTST2-SUITE,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,1,ChannelManager,1930.0,,1,0.0,GS-6,107,25,4 +2020-07-16 08:03:22,Confirmed,GVDCT1-BEDROOM,2020-09-17 07:00:00,2020-09-17 17:00:00,1391.0,1,ChannelManager,1766.0,,1,0.0,PS-3,107,25,1 +2020-07-06 11:52:07,Confirmed,CENTRI-RFC03,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,2,ChannelManager,478.0,,1,0.0,R104,107,25,6 +2020-07-06 11:58:40,Confirmed,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,2,ChannelManager,478.0,,1,0.0,,107,25,6 +2020-07-06 11:59:48,Confirmed,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,2,ChannelManager,478.0,,1,0.0,,107,25,6 +2020-07-06 12:00:55,Confirmed,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,2,ChannelManager,478.0,,1,0.0,,107,25,6 +2020-07-06 12:08:08,Confirmed,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,2,ChannelManager,478.0,,1,0.0,,107,25,6 +2020-07-06 12:09:00,Confirmed,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,2,ChannelManager,478.0,,1,0.0,,107,25,6 +2020-07-10 03:25:39,Confirmed,GVDTST2-SUITE,2020-12-07 11:01:00,2020-12-10 10:00:00,4110.0,3,ChannelManager,4370.0,,2,0.0,GS-1,107,25,1 +2020-05-08 03:24:55,Confirmed,,2021-03-03 10:00:00,2021-03-06 09:00:00,0.0,3,Direct,150.0,,2,0.0,,107,25,1 +2020-05-14 07:26:22,Confirmed,LND-DBL,2020-05-14 07:24:00,2020-05-19 08:00:00,0.0,6,Ibe,530.0,VN,1,0.0,1.005,112,3,1 +2020-05-14 08:23:21,Confirmed,LND-SGL,2020-05-14 09:00:00,2020-05-15 08:00:00,80.0,1,Direct,100.0,VN,1,0.0,1.010,112,3,1 +2020-05-18 03:00:03,InHouse,BER-SGL,2020-05-18 08:00:00,2020-05-29 08:00:00,1100.0,11,Direct,1100.0,VN,1,0.0,1.003,112,3,1 +2020-05-14 07:14:55,CheckedOut,LND-SGL,2020-05-14 07:14:00,2020-05-15 08:00:00,0.0,2,Direct,0.0,VN,1,0.0,G.002,114,3,1 +2020-05-18 02:53:44,CheckedOut,LND-SGL,2020-05-18 08:00:00,2020-05-22 08:00:00,320.0,4,Direct,400.0,VN,1,0.0,1.007,114,3,1 +2020-05-21 04:43:06,Confirmed,,2020-05-21 15:00:00,2020-05-29 08:00:00,811.5,8,Direct,1009.0,VN,1,0.0,,114,3,2 +2020-05-21 07:03:30,Confirmed,,2020-05-21 15:00:00,2020-05-27 08:00:00,574.0,6,Direct,941.5,VN,1,0.0,,114,3,2 +2020-05-19 04:30:43,Canceled,,2020-05-19 09:00:00,2020-05-20 08:00:00,80.0,1,Direct,100.0,VN,1,0.0,,122,2,1 +2020-05-19 10:36:48,InHouse,LND-SGL,2020-05-26 09:00:00,2020-05-28 08:00:00,260.0,2,Direct,260.0,VN,1,0.0,1.003,122,2,1 +2020-06-02 03:36:51,Canceled,,2020-06-02 15:00:00,2020-06-03 08:00:00,87.5,1,Direct,145.0,,1,0.0,,129,7,1 +2020-06-02 03:55:49,NoShow,,2020-06-04 15:00:00,2020-06-05 08:00:00,87.5,1,Direct,145.0,,1,0.0,,129,7,1 +2020-06-07 04:12:22,Confirmed,CENTRI-RFC09,2020-06-09 12:00:00,2020-06-10 11:00:00,100.0,1,Ibe,100.0,,1,0.0,R303,129,7,1 +2020-07-07 12:01:40,Confirmed,CENTRI-RFC05,2020-07-08 12:00:00,2020-07-09 11:00:00,52.0,1,ChannelManager,67.0,,1,0.0,R105,129,7,3 +2020-07-07 12:16:28,Confirmed,CENTRI-RFC06,2020-07-08 12:00:00,2020-07-09 11:00:00,286.0,1,ChannelManager,286.0,,1,0.0,R205,129,7,3 +2020-07-07 12:16:29,Confirmed,CENTRI-RFC06,2020-07-08 12:00:00,2020-07-09 11:00:00,286.0,1,ChannelManager,301.0,,1,2.0,R203,129,7,3 +2020-07-10 11:17:18,Confirmed,GVDTST2-SUITE,2020-08-01 10:01:00,2020-08-02 09:00:00,1455.0,1,ChannelManager,1455.0,,1,0.0,GS-1,129,7,2 +2020-07-10 11:51:46,Confirmed,GVDTST2-SUITE,2020-08-01 10:01:00,2020-08-02 09:00:00,1275.0,1,ChannelManager,1275.0,,1,0.0,GS-6,129,7,2 +2020-07-10 04:17:02,Confirmed,GVDTST2-SUITE,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,2,ChannelManager,4090.0,,1,0.0,GS-1,129,7,2 +2020-07-10 04:17:03,Confirmed,GVDTST2-SUITE,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,2,ChannelManager,4490.0,,1,0.0,GS-6,129,7,2 +2020-07-09 11:04:24,Confirmed,GVDTST2-SUITTUB,2020-10-24 10:01:00,2020-10-27 10:00:00,5790.0,3,ChannelManager,6720.0,,1,0.0,PS-4,129,7,2 +2020-07-09 11:04:24,Confirmed,GVDTST2-SUITTUB,2020-10-24 10:01:00,2020-10-27 10:00:00,5790.0,3,ChannelManager,5790.0,,2,0.0,PS-2,129,7,2 +2020-06-17 10:14:34,Canceled,CENTRI-RFC09,2020-07-01 12:00:00,2020-07-03 11:00:00,128.0,2,Ibe,128.0,,2,0.0,R303,155,7,2 +2020-06-17 10:14:35,Canceled,,2020-07-01 12:00:00,2020-07-03 11:00:00,128.0,2,Ibe,128.0,,2,0.0,,155,7,2 +2020-06-17 10:27:10,Canceled,,2020-07-04 12:00:00,2020-07-06 11:00:00,128.0,2,Ibe,128.0,,2,0.0,,155,7,2 +2020-06-17 10:27:11,Canceled,CENTRI-RFC03,2020-07-04 12:00:00,2020-07-06 11:00:00,128.0,2,Ibe,128.0,,2,0.0,R104,155,7,2 +2020-07-06 07:16:57,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:16:57,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:19:26,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:19:27,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:20:22,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:20:22,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:28:39,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:28:40,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:29:56,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:29:56,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:31:38,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:31:39,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:32:38,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:32:38,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:33:38,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-07-06 07:33:38,Confirmed,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,2,BookingCom,128.0,,2,0.0,,155,7,16 +2020-06-17 07:47:13,Confirmed,,2020-12-19 13:00:00,2020-12-21 12:00:00,128.0,2,Ibe,128.0,,2,0.0,,155,7,2 +2020-06-17 07:47:14,Confirmed,,2020-12-19 13:00:00,2020-12-21 12:00:00,128.0,2,Ibe,128.0,,2,0.0,,155,7,2 +2020-06-17 07:43:26,Confirmed,,2020-12-21 13:00:00,2020-12-23 12:00:00,128.0,2,Ibe,128.0,,2,0.0,,155,7,1 +2020-06-17 07:39:37,Confirmed,,2020-12-23 13:00:00,2020-12-24 12:00:00,99.0,1,Ibe,99.0,,2,0.0,,155,7,1 +2020-06-17 07:36:25,Confirmed,CENTRI-RFC09,2020-12-24 13:00:00,2020-12-25 12:00:00,99.0,1,Ibe,99.0,,2,0.0,R303,155,7,1 diff --git a/ai/storage/test-file-id-input/returning_guests_fillna.csv b/ai/storage/test-file-id-input/returning_guests_fillna.csv new file mode 100644 index 0000000..4ba2dd0 --- /dev/null +++ b/ai/storage/test-file-id-input/returning_guests_fillna.csv @@ -0,0 +1,115 @@ +CreatedDate,Status,RoomGroupID,ArrivalDate,DepartureDate,RoomPrice,Nights,Channel,TotalPayment,Country,Adults,Children,RoomNo,GuestID,NumberOfArrivals,NumberOfRooms +2019-08-05 13:55:46,CONFIRMED,LND-FAMILY,2019-09-08 09:00:00,2019-09-09 08:00:00,155.0,0,direct,155.0,gb,2,0.0,3.002,87,2,1 +2020-05-14 08:02:09,CONFIRMED,,2020-05-14 09:00:00,2020-05-15 08:00:00,80.0,0,direct,100.0,gb,1,0.0,,87,2,1 +2020-02-20 07:38:22,CONFIRMED,MUC-DBL,2020-02-29 09:00:00,2020-03-03 08:00:00,675.06,2,direct,780.0,others,2,0.0,1.001,104,10,1 +2020-03-19 04:45:45,CONFIRMED,,2020-03-19 09:00:00,2020-03-20 08:00:00,0.0,0,direct,170.0,others,4,0.0,,104,10,1 +2020-03-19 04:55:19,CONFIRMED,,2020-03-28 09:00:00,2020-03-30 07:00:00,150.0,1,direct,350.0,others,1,1.0,,104,10,1 +2020-05-14 07:54:23,CHECKEDOUT,LND-SGL,2020-05-14 08:00:00,2020-05-15 08:00:00,80.0,1,direct,170.0,vn,1,0.0,1.003,104,10,1 +2020-05-15 07:49:48,CONFIRMED,,2020-05-15 15:00:00,2020-05-16 08:00:00,100.0,0,direct,100.0,vn,1,0.0,,104,10,1 +2020-05-14 08:22:40,CONFIRMED,LND-SGL,2020-05-16 09:00:00,2020-05-18 08:00:00,160.0,1,bookingcom,220.0,vn,1,0.0,1.003,104,10,1 +2020-05-18 03:12:00,INHOUSE,BER-SGL,2020-05-18 08:00:00,2020-05-19 08:00:00,100.0,1,direct,100.0,others,1,0.0,3.001,104,10,1 +2020-05-18 05:14:18,CONFIRMED,,2020-05-18 15:00:00,2020-05-19 08:00:00,100.0,0,direct,100.0,vn,1,0.0,,104,10,1 +2020-12-16 04:32:03,CONFIRMED,,2020-12-19 16:00:00,2020-12-20 09:00:00,62.5,0,direct,170.0,vn,1,0.0,,104,10,1 +2020-05-14 07:39:18,CANCELED,,2021-01-01 10:00:00,2021-01-06 09:00:00,900.0,4,direct,1000.0,others,1,0.0,,104,10,1 +2020-03-19 03:26:52,CONFIRMED,,2020-03-19 03:23:00,2020-03-20 08:00:00,0.0,1,direct,189.98,others,1,0.0,,107,25,2 +2020-03-19 03:26:55,CONFIRMED,,2020-03-19 03:23:00,2020-03-20 08:00:00,0.0,1,direct,189.98,others,1,0.0,,107,25,2 +2020-05-18 03:12:25,NOSHOW,,2020-05-18 15:00:00,2020-05-19 08:00:00,100.0,0,direct,100.0,others,1,0.0,,107,25,1 +2020-07-02 03:58:11,CANCELED,,2020-07-20 12:00:00,2020-07-24 11:00:00,340.0,3,ibe,414.0,others,1,0.0,,107,25,2 +2020-07-02 04:00:14,CANCELED,,2020-07-20 12:00:00,2020-07-24 11:00:00,240.0,3,ibe,314.0,others,1,0.0,,107,25,2 +2020-07-06 02:22:04,CANCELED,CENTRI-RFC10,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,ibe,635.0,others,1,0.0,R304,107,25,14 +2020-07-06 02:42:51,CANCELED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,homelike,640.0,others,1,0.0,,107,25,14 +2020-07-06 02:43:46,CANCELED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,others,640.0,others,1,0.0,,107,25,14 +2020-07-06 02:50:17,CANCELED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,bookingcom,640.0,others,1,0.0,,107,25,14 +2020-07-06 02:53:42,CANCELED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,bookingcom,640.0,others,1,0.0,,107,25,14 +2020-07-06 02:54:00,CANCELED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,bookingcom,640.0,others,1,0.0,,107,25,14 +2020-07-06 02:54:05,CANCELED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,bookingcom,640.0,others,1,0.0,,107,25,14 +2020-07-06 02:56:27,CANCELED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,bookingcom,640.0,others,1,0.0,,107,25,14 +2020-07-06 02:59:32,CONFIRMED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,bookingcom,640.0,others,1,0.0,,107,25,14 +2020-07-06 02:59:33,CONFIRMED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,bookingcom,640.0,others,1,0.0,,107,25,14 +2020-07-06 03:28:36,CONFIRMED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,homelike,640.0,others,1,0.0,,107,25,14 +2020-07-06 03:28:37,CONFIRMED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,homelike,640.0,others,1,0.0,,107,25,14 +2020-07-06 07:42:10,CONFIRMED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,channelmanager,640.0,others,1,0.0,,107,25,14 +2020-07-06 07:42:11,CONFIRMED,,2020-07-22 12:00:00,2020-07-25 11:00:00,515.0,2,channelmanager,640.0,others,1,0.0,,107,25,14 +2020-07-16 04:53:00,CONFIRMED,GVDCT1-BEDROOM,2020-08-01 07:00:00,2020-08-01 17:00:00,1235.0,0,channelmanager,1235.0,others,1,0.0,PS-3,107,25,1 +2020-07-01 03:19:05,CANCELED,CENTRI-RFC10,2020-08-02 12:00:00,2020-08-05 11:00:00,255.0,2,ibe,360.0,others,1,0.0,R304,107,25,2 +2020-07-01 03:23:40,CANCELED,,2020-08-02 12:00:00,2020-08-05 11:00:00,272.0,2,ibe,377.0,others,1,0.0,,107,25,2 +2020-07-01 02:34:11,CANCELED,CENTRI-RFC05,2020-08-04 12:00:00,2020-08-06 11:00:00,170.0,1,ibe,170.0,others,1,0.0,R105,107,25,2 +2020-07-01 02:44:22,CANCELED,,2020-08-04 12:00:00,2020-08-06 11:00:00,152.0,1,ibe,152.0,others,1,0.0,,107,25,2 +2020-07-10 03:31:42,CONFIRMED,GVDTST2-SUITTUB,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,1,channelmanager,4490.0,others,1,0.0,PS-4,107,25,2 +2020-07-10 03:31:43,CONFIRMED,GVDTST2-SUITTUB,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,1,channelmanager,4090.0,others,1,0.0,PS-2,107,25,2 +2020-07-16 05:09:44,CONFIRMED,GVDCT1-BEDROOM,2020-08-08 07:00:00,2020-08-08 17:00:00,1421.0,0,channelmanager,1421.0,others,1,0.0,PS-3,107,25,1 +2020-07-02 07:14:10,CONFIRMED,CENTRI-RFC10,2020-08-11 12:00:00,2020-08-14 11:00:00,510.0,2,ibe,603.0,others,1,0.0,R304,107,25,1 +2020-07-20 04:40:32,CONFIRMED,GVDCT1-BEDROOM,2020-08-12 07:00:00,2020-08-14 17:00:00,4314.0,2,channelmanager,4314.0,others,1,0.0,GS-6,107,25,1 +2020-07-09 10:37:25,CONFIRMED,GVDTST2-SUITE,2020-08-13 10:01:00,2020-08-14 09:00:00,1421.0,0,channelmanager,2761.0,others,1,0.0,GS-1,107,25,5 +2020-07-13 04:39:20,CONFIRMED,GVDTST2-SUITE,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,1,channelmanager,3000.0,others,1,0.0,GS-6,107,25,5 +2020-07-13 04:44:01,CONFIRMED,,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,1,channelmanager,3000.0,others,1,0.0,,107,25,5 +2020-07-13 04:48:05,CONFIRMED,,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,1,channelmanager,3000.0,others,1,0.0,,107,25,5 +2020-07-13 05:12:43,CONFIRMED,,2020-08-13 10:01:00,2020-08-15 09:00:00,2500.0,1,channelmanager,3000.0,others,1,0.0,,107,25,5 +2020-07-17 12:28:05,CONFIRMED,GVDCT1-BEDROOM,2020-08-13 07:00:00,2020-08-13 17:00:00,1421.0,0,channelmanager,1421.0,others,1,0.0,PS-3,107,25,1 +2020-07-02 04:15:41,CANCELED,CENTRI-RFC05,2020-08-16 12:00:00,2020-08-19 11:00:00,255.0,2,ibe,348.0,others,1,0.0,R105,107,25,1 +2020-07-09 11:01:13,CONFIRMED,GVDTST2-SUITE,2020-08-21 10:01:00,2020-08-23 09:00:00,2876.0,1,channelmanager,2966.0,others,1,0.0,GS-1,107,25,1 +2020-07-02 07:11:21,CANCELED,CENTRI-RFC05,2020-08-24 12:00:00,2020-08-27 11:00:00,180.0,2,ibe,300.0,others,1,0.0,R105,107,25,1 +2020-07-09 09:40:01,CONFIRMED,GVDTST2-SUITE,2020-08-24 10:01:00,2020-08-27 09:00:00,4263.0,2,channelmanager,4263.0,others,1,0.0,GS-1,107,25,1 +2020-07-03 07:24:48,CONFIRMED,CENTRI-RFC10,2020-08-25 12:00:00,2020-08-28 11:00:00,510.0,2,ibe,576.0,others,1,0.0,R304,107,25,1 +2020-07-16 04:44:42,CONFIRMED,GVDCT1-BEDROOM,2020-08-26 07:00:00,2020-08-27 17:00:00,2842.0,1,channelmanager,2842.0,others,1,0.0,PS-3,107,25,1 +2020-07-02 05:07:23,CANCELED,CENTRI-RFC05,2020-09-09 12:00:00,2020-09-12 11:00:00,156.0,2,ibe,249.0,others,1,0.0,R105,107,25,2 +2020-07-02 05:12:08,CANCELED,,2020-09-09 12:00:00,2020-09-12 11:00:00,156.0,2,ibe,249.0,others,1,0.0,,107,25,2 +2020-07-10 07:59:08,CONFIRMED,GVDTST2-SUITTUB,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,0,channelmanager,1930.0,others,1,0.0,PS-4,107,25,4 +2020-07-10 07:59:08,CONFIRMED,GVDTST2-SUITTUB,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,0,channelmanager,2310.0,others,1,0.0,PS-2,107,25,4 +2020-07-10 08:06:44,CONFIRMED,GVDTST2-SUITE,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,0,channelmanager,2310.0,others,1,0.0,GS-1,107,25,4 +2020-07-10 08:06:44,CONFIRMED,GVDTST2-SUITE,2020-09-16 10:01:00,2020-09-17 09:00:00,1930.0,0,channelmanager,1930.0,others,1,0.0,GS-6,107,25,4 +2020-07-16 08:03:22,CONFIRMED,GVDCT1-BEDROOM,2020-09-17 07:00:00,2020-09-17 17:00:00,1391.0,0,channelmanager,1766.0,others,1,0.0,PS-3,107,25,1 +2020-07-06 11:52:07,CONFIRMED,CENTRI-RFC03,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,1,channelmanager,478.0,others,1,0.0,R104,107,25,6 +2020-07-06 11:58:40,CONFIRMED,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,1,channelmanager,478.0,others,1,0.0,,107,25,6 +2020-07-06 11:59:48,CONFIRMED,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,1,channelmanager,478.0,others,1,0.0,,107,25,6 +2020-07-06 12:00:55,CONFIRMED,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,1,channelmanager,478.0,others,1,0.0,,107,25,6 +2020-07-06 12:08:08,CONFIRMED,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,1,channelmanager,478.0,others,1,0.0,,107,25,6 +2020-07-06 12:09:00,CONFIRMED,,2020-10-26 13:00:00,2020-10-28 12:00:00,388.0,1,channelmanager,478.0,others,1,0.0,,107,25,6 +2020-07-10 03:25:39,CONFIRMED,GVDTST2-SUITE,2020-12-07 11:01:00,2020-12-10 10:00:00,4110.0,2,channelmanager,4370.0,others,2,0.0,GS-1,107,25,1 +2020-05-08 03:24:55,CONFIRMED,,2021-03-03 10:00:00,2021-03-06 09:00:00,0.0,2,direct,150.0,others,2,0.0,,107,25,1 +2020-05-14 07:26:22,CONFIRMED,LND-DBL,2020-05-14 07:24:00,2020-05-19 08:00:00,0.0,5,ibe,530.0,vn,1,0.0,1.005,112,3,1 +2020-05-14 08:23:21,CONFIRMED,LND-SGL,2020-05-14 09:00:00,2020-05-15 08:00:00,80.0,0,direct,100.0,vn,1,0.0,1.010,112,3,1 +2020-05-18 03:00:03,INHOUSE,BER-SGL,2020-05-18 08:00:00,2020-05-29 08:00:00,1100.0,11,direct,1100.0,vn,1,0.0,1.003,112,3,1 +2020-05-14 07:14:55,CHECKEDOUT,LND-SGL,2020-05-14 07:14:00,2020-05-15 08:00:00,0.0,1,direct,0.0,vn,1,0.0,G.002,114,3,1 +2020-05-18 02:53:44,CHECKEDOUT,LND-SGL,2020-05-18 08:00:00,2020-05-22 08:00:00,320.0,4,direct,400.0,vn,1,0.0,1.007,114,3,1 +2020-05-21 04:43:06,CONFIRMED,,2020-05-21 15:00:00,2020-05-29 08:00:00,811.5,7,direct,1009.0,vn,1,0.0,,114,3,2 +2020-05-21 07:03:30,CONFIRMED,,2020-05-21 15:00:00,2020-05-27 08:00:00,574.0,5,direct,941.5,vn,1,0.0,,114,3,2 +2020-05-19 04:30:43,CANCELED,,2020-05-19 09:00:00,2020-05-20 08:00:00,80.0,0,direct,100.0,vn,1,0.0,,122,2,1 +2020-05-19 10:36:48,INHOUSE,LND-SGL,2020-05-26 09:00:00,2020-05-28 08:00:00,260.0,1,direct,260.0,vn,1,0.0,1.003,122,2,1 +2020-06-02 03:36:51,CANCELED,,2020-06-02 15:00:00,2020-06-03 08:00:00,87.5,0,direct,145.0,others,1,0.0,,129,7,1 +2020-06-02 03:55:49,NOSHOW,,2020-06-04 15:00:00,2020-06-05 08:00:00,87.5,0,direct,145.0,others,1,0.0,,129,7,1 +2020-06-07 04:12:22,CONFIRMED,CENTRI-RFC09,2020-06-09 12:00:00,2020-06-10 11:00:00,100.0,0,ibe,100.0,others,1,0.0,R303,129,7,1 +2020-07-07 12:01:40,CONFIRMED,CENTRI-RFC05,2020-07-08 12:00:00,2020-07-09 11:00:00,52.0,0,channelmanager,67.0,others,1,0.0,R105,129,7,3 +2020-07-07 12:16:28,CONFIRMED,CENTRI-RFC06,2020-07-08 12:00:00,2020-07-09 11:00:00,286.0,0,channelmanager,286.0,others,1,0.0,R205,129,7,3 +2020-07-07 12:16:29,CONFIRMED,CENTRI-RFC06,2020-07-08 12:00:00,2020-07-09 11:00:00,286.0,0,channelmanager,301.0,others,1,2.0,R203,129,7,3 +2020-07-10 11:17:18,CONFIRMED,GVDTST2-SUITE,2020-08-01 10:01:00,2020-08-02 09:00:00,1455.0,0,channelmanager,1455.0,others,1,0.0,GS-1,129,7,2 +2020-07-10 11:51:46,CONFIRMED,GVDTST2-SUITE,2020-08-01 10:01:00,2020-08-02 09:00:00,1275.0,0,channelmanager,1275.0,others,1,0.0,GS-6,129,7,2 +2020-07-10 04:17:02,CONFIRMED,GVDTST2-SUITE,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,1,channelmanager,4090.0,others,1,0.0,GS-1,129,7,2 +2020-07-10 04:17:03,CONFIRMED,GVDTST2-SUITE,2020-08-04 10:01:00,2020-08-06 09:00:00,4010.0,1,channelmanager,4490.0,others,1,0.0,GS-6,129,7,2 +2020-07-09 11:04:24,CONFIRMED,GVDTST2-SUITTUB,2020-10-24 10:01:00,2020-10-27 10:00:00,5790.0,2,channelmanager,6720.0,others,1,0.0,PS-4,129,7,2 +2020-07-09 11:04:24,CONFIRMED,GVDTST2-SUITTUB,2020-10-24 10:01:00,2020-10-27 10:00:00,5790.0,2,channelmanager,5790.0,others,2,0.0,PS-2,129,7,2 +2020-06-17 10:14:34,CANCELED,CENTRI-RFC09,2020-07-01 12:00:00,2020-07-03 11:00:00,128.0,1,ibe,128.0,others,2,0.0,R303,155,7,2 +2020-06-17 10:14:35,CANCELED,,2020-07-01 12:00:00,2020-07-03 11:00:00,128.0,1,ibe,128.0,others,2,0.0,,155,7,2 +2020-06-17 10:27:10,CANCELED,,2020-07-04 12:00:00,2020-07-06 11:00:00,128.0,1,ibe,128.0,others,2,0.0,,155,7,2 +2020-06-17 10:27:11,CANCELED,CENTRI-RFC03,2020-07-04 12:00:00,2020-07-06 11:00:00,128.0,1,ibe,128.0,others,2,0.0,R104,155,7,2 +2020-07-06 07:16:57,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:16:57,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:19:26,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:19:27,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:20:22,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:20:22,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:28:39,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:28:40,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:29:56,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:29:56,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:31:38,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:31:39,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:32:38,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:32:38,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:33:38,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-07-06 07:33:38,CONFIRMED,,2020-10-10 12:00:00,2020-10-12 11:00:00,128.0,1,bookingcom,128.0,others,2,0.0,,155,7,16 +2020-06-17 07:47:13,CONFIRMED,,2020-12-19 13:00:00,2020-12-21 12:00:00,128.0,1,ibe,128.0,others,2,0.0,,155,7,2 +2020-06-17 07:47:14,CONFIRMED,,2020-12-19 13:00:00,2020-12-21 12:00:00,128.0,1,ibe,128.0,others,2,0.0,,155,7,2 +2020-06-17 07:43:26,CONFIRMED,,2020-12-21 13:00:00,2020-12-23 12:00:00,128.0,1,ibe,128.0,others,2,0.0,,155,7,1 +2020-06-17 07:39:37,CONFIRMED,,2020-12-23 13:00:00,2020-12-24 12:00:00,99.0,0,ibe,99.0,others,2,0.0,,155,7,1 +2020-06-17 07:36:25,CONFIRMED,CENTRI-RFC09,2020-12-24 13:00:00,2020-12-25 12:00:00,99.0,0,ibe,99.0,others,2,0.0,R303,155,7,1 diff --git a/ai/storage/test-file-id-input/returning_guests_processed.csv b/ai/storage/test-file-id-input/returning_guests_processed.csv new file mode 100644 index 0000000..f3b3efb --- /dev/null +++ b/ai/storage/test-file-id-input/returning_guests_processed.csv @@ -0,0 +1,9 @@ +GuestID,Country = others,Country = vn,Country = gb,Lifetime,TotalRevenue,AverageRevenuePerYear,AverageRevenueInMostActiveMonth,InactiveDays,NumberOfRooms,NumberOfOrders,AverageNightsInHouse,AverageDaysBetweenOrders,AverageRevenuePerOrder,AverageRevenuePerRoom,AverageRoomsPerOrder,AverageOrdersPerYear,AverageOrdersInMostActiveMonth,MostActiveMonth = 5.0,MostActiveMonth = 7.0,MostActiveMonth = 10.0,LeastActiveMonth = 5.0,LeastActiveMonth = 12.0,LeastActiveMonth = 10.0,LeastActiveMonth = 8.0,LeastActiveMonth = 6.0,LeastActiveMonth = 1.0,MostActiveQuarter = 2.0,MostActiveQuarter = 3.0,MostActiveQuarter = 4.0,LeastActiveQuarter = 2.0,LeastActiveQuarter = 4.0,LeastActiveQuarter = 3.0,LeastActiveQuarter = 1.0 +87.0,0.0,0.0,1.0,1.4072553045859,255.0,181.20379377431908,100.0,230.0,2.0,2.0,0.0,249.0,127.5,127.5,1.0,1.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0 +104.0,1.0,0.0,0.0,0.8624229979466119,3160.0,3160.0,1690.0,-5.0,10.0,10.0,1.0,34.0,316.0,316.0,1.0,10.0,6.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0 +107.0,1.0,0.0,0.0,0.785763175906913,72983.95999999999,72983.95999999999,72354.0,-64.0,56.0,25.0,1.0,6.0,2919.3583999999996,1303.2849999999999,2.0,25.0,52.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0 +112.0,0.0,1.0,0.0,0.6324435318275154,1730.0,1730.0,1730.0,216.0,3.0,3.0,5.0,2.0,576.6666666666666,576.6666666666666,1.0,3.0,3.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0 +114.0,0.0,1.0,0.0,0.6324435318275154,2350.5,2350.5,2350.5,216.0,4.0,3.0,4.0,2.0,783.5,587.625,1.0,3.0,4.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0 +122.0,0.0,1.0,0.0,0.6187542778918549,360.0,360.0,360.0,217.0,2.0,2.0,0.0,7.0,180.0,180.0,1.0,2.0,2.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,0.0 +129.0,1.0,0.0,0.0,0.5804243668720055,24864.0,24864.0,24474.0,65.0,12.0,7.0,0.0,13.0,3552.0,2072.0,1.0,7.0,9.0,0.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0 +155.0,1.0,0.0,0.0,0.5393566050650239,3142.0,3142.0,2048.0,6.0,25.0,7.0,0.0,7.0,448.85714285714283,125.68,3.0,7.0,16.0,0.0,0.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0 diff --git a/ai/wsgi.py b/ai/wsgi.py new file mode 100644 index 0000000..4bcfa11 --- /dev/null +++ b/ai/wsgi.py @@ -0,0 +1,4 @@ +from .app import app + +if __name__ == "__main__": + app.run(use_reloader=True, debug=True) \ No newline at end of file diff --git a/client/.browserslistrc b/client/.browserslistrc new file mode 100644 index 0000000..427441d --- /dev/null +++ b/client/.browserslistrc @@ -0,0 +1,17 @@ +# This file is used by the build system to adjust CSS and JS output to support the specified browsers below. +# For additional information regarding the format and rule options, please see: +# https://github.com/browserslist/browserslist#queries + +# For the full list of supported browsers by the Angular framework, please see: +# https://angular.io/guide/browser-support + +# You can see what browsers were selected by your queries by running: +# npx browserslist + +last 1 Chrome version +last 1 Firefox version +last 2 Edge major versions +last 2 Safari major versions +last 2 iOS major versions +Firefox ESR +not IE 11 # Angular supports IE 11 only as an opt-in. To opt-in, remove the 'not' prefix on this line. diff --git a/client/.dockerignore b/client/.dockerignore new file mode 100644 index 0000000..cc70762 --- /dev/null +++ b/client/.dockerignore @@ -0,0 +1,193 @@ +# Created by .ignore support plugin (hsz.mobi) +### Node template +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variables file +.env +.env.test + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +node_modules diff --git a/client/.editorconfig b/client/.editorconfig new file mode 100644 index 0000000..59d9a3a --- /dev/null +++ b/client/.editorconfig @@ -0,0 +1,16 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.ts] +quote_type = single + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/client/.gitignore b/client/.gitignore new file mode 100644 index 0000000..956ef96 --- /dev/null +++ b/client/.gitignore @@ -0,0 +1,50 @@ +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/tmp +/out-tsc +# Only exists if Bazel was run +/bazel-out + +# dependencies +/node_modules + +# profiling files +chrome-profiler-events*.json +speed-measure-plugin*.json + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history/* + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log +npm-debug.log +yarn-error.log +testem.log +/typings + +# System Files +.DS_Store +Thumbs.db +**/.mvn +**/*.iml +**/target +**/dist diff --git a/client/Dockerfile b/client/Dockerfile new file mode 100644 index 0000000..e04d764 --- /dev/null +++ b/client/Dockerfile @@ -0,0 +1,12 @@ +### STAGE 1: Build ### +FROM node:alpine AS build +WORKDIR /usr/src/app +COPY package.json package-lock.json ./ +RUN npm install +COPY . . +RUN npm run build-prod + +### STAGE 2: Run ### +FROM nginx:1.18.0-alpine +COPY nginx.conf /etc/nginx/nginx.conf +COPY --from=build /usr/src/app/dist/dataspire-lite /usr/share/nginx/html diff --git a/client/angular.json b/client/angular.json new file mode 100644 index 0000000..ffa230c --- /dev/null +++ b/client/angular.json @@ -0,0 +1,149 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "dataspire-lite": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss", + "inlineTemplate": true, + "skipTests": true, + "changeDetection": "OnPush" + }, + "@schematics/angular:service": { + "skipTests": true + }, + "@schematics/angular:directive": { + "skipTests": true + }, + "@schematics/angular:pipe": { + "skipTests": true + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "app", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "allowedCommonJsDependencies": [ + "core-js", + "raf", + "xlsx", + "@babel/runtime", + "graphql-tag", + "jspdf", + "html2canvas" + ], + "outputPath": "dist/dataspire-lite", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "aot": true, + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "budgets": [ + { + "type": "initial", + "maximumWarning": "2mb", + "maximumError": "5mb" + }, + { + "type": "anyComponentStyle", + "maximumWarning": "6kb", + "maximumError": "10kb" + } + ] + } + } + }, + "serve": { + "builder": "@angular-devkit/build-angular:dev-server", + "options": { + "browserTarget": "dataspire-lite:build" + }, + "configurations": { + "production": { + "browserTarget": "dataspire-lite:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "dataspire-lite:build" + } + }, + "test": { + "builder": "@angular-devkit/build-angular:karma", + "options": { + "main": "src/test.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", + "assets": [ + "src/favicon.ico", + "src/assets" + ], + "styles": [ + "src/styles.scss" + ], + "scripts": [] + } + }, + "lint": { + "builder": "@angular-devkit/build-angular:tslint", + "options": { + "tsConfig": [ + "tsconfig.app.json", + "tsconfig.spec.json", + "e2e/tsconfig.json" + ], + "exclude": [ + "**/node_modules/**" + ] + } + }, + "e2e": { + "builder": "@angular-devkit/build-angular:protractor", + "options": { + "protractorConfig": "e2e/protractor.conf.js", + "devServerTarget": "dataspire-lite:serve" + }, + "configurations": { + "production": { + "devServerTarget": "dataspire-lite:serve:production" + } + } + } + } + } + }, + "defaultProject": "dataspire-lite" +} diff --git a/client/e2e/protractor.conf.js b/client/e2e/protractor.conf.js new file mode 100644 index 0000000..5fd5c44 --- /dev/null +++ b/client/e2e/protractor.conf.js @@ -0,0 +1,38 @@ +// @ts-check +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const {SpecReporter, StacktraceOption} = require('jasmine-spec-reporter'); + +/** + * @type { import("protractor").Config } + */ +exports.config = { + allScriptsTimeout: 11000, + specs: [ + './src/**/*.e2e-spec.ts' + ], + capabilities: { + browserName: 'chrome' + }, + directConnect: true, + SELENIUM_PROMISE_MANAGER: false, + baseUrl: 'http://localhost:4200/', + framework: 'jasmine', + jasmineNodeOpts: { + showColors: true, + defaultTimeoutInterval: 30000, + print: function () { + } + }, + onPrepare() { + require('ts-node').register({ + project: require('path').join(__dirname, './tsconfig.json') + }); + jasmine.getEnv().addReporter(new SpecReporter({ + spec: { + displayStacktrace: StacktraceOption.PRETTY + } + })); + } +}; diff --git a/client/e2e/src/app.e2e-spec.ts b/client/e2e/src/app.e2e-spec.ts new file mode 100644 index 0000000..634b9bc --- /dev/null +++ b/client/e2e/src/app.e2e-spec.ts @@ -0,0 +1,23 @@ +import {browser, logging} from 'protractor'; +import {AppPage} from './app.po'; + +describe('workspace-project App', () => { + let page: AppPage; + + beforeEach(() => { + page = new AppPage(); + }); + + it('should display welcome message', async () => { + await page.navigateTo(); + expect(await page.getTitleText()).toEqual('dataspire-lite app is running!'); + }); + + afterEach(async () => { + // Assert that there are no errors emitted from the browser + const logs = await browser.manage().logs().get(logging.Type.BROWSER); + expect(logs).not.toContain(jasmine.objectContaining({ + level: logging.Level.SEVERE, + } as logging.Entry)); + }); +}); diff --git a/client/e2e/src/app.po.ts b/client/e2e/src/app.po.ts new file mode 100644 index 0000000..b0141ed --- /dev/null +++ b/client/e2e/src/app.po.ts @@ -0,0 +1,11 @@ +import {browser, by, element} from 'protractor'; + +export class AppPage { + async navigateTo(): Promise { + return browser.get(browser.baseUrl); + } + + async getTitleText(): Promise { + return element(by.css('app-root .content span')).getText(); + } +} diff --git a/client/e2e/tsconfig.json b/client/e2e/tsconfig.json new file mode 100644 index 0000000..0782539 --- /dev/null +++ b/client/e2e/tsconfig.json @@ -0,0 +1,13 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es2018", + "types": [ + "jasmine", + "node" + ] + } +} diff --git a/client/karma.conf.js b/client/karma.conf.js new file mode 100644 index 0000000..e79173c --- /dev/null +++ b/client/karma.conf.js @@ -0,0 +1,44 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, './coverage/dataspire-lite'), + subdir: '.', + reporters: [ + {type: 'html'}, + {type: 'text-summary'} + ] + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true + }); +}; diff --git a/client/nginx.conf b/client/nginx.conf new file mode 100644 index 0000000..1803ecd --- /dev/null +++ b/client/nginx.conf @@ -0,0 +1,17 @@ +events{} + +http { + + include /etc/nginx/mime.types; + + server { + listen 80; + server_name localhost; + root /usr/share/nginx/html; + index index.html; + + location / { + try_files $uri $uri/ /index.html; + } + } +} diff --git a/client/package-lock.json b/client/package-lock.json new file mode 100644 index 0000000..021c228 --- /dev/null +++ b/client/package-lock.json @@ -0,0 +1,42599 @@ +{ + "name": "dataspire-lite", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "dataspire-lite", + "version": "0.0.0", + "dependencies": { + "@amcharts/amcharts4": "^4.10.16", + "@amcharts/amcharts4-fonts": "^4.0.1", + "@angular/animations": "~11.2.6", + "@angular/cdk": "^11.2.5", + "@angular/common": "~11.2.6", + "@angular/compiler": "~11.2.6", + "@angular/core": "~11.2.6", + "@angular/forms": "~11.2.6", + "@angular/material": "^11.2.5", + "@angular/platform-browser": "~11.2.6", + "@angular/platform-browser-dynamic": "~11.2.6", + "@angular/router": "~11.2.6", + "angular-auth-oidc-client": "11.6.4", + "angular-oauth2-oidc": "^10.0.3", + "classlist.js": "^1.1.20150312", + "foundation-sites": "^6.6.3", + "fuse.js": "^6.4.6", + "graphql": "^15.5.0", + "graphql-tag": "^2.11.0", + "html2canvas": "1.0.0-rc.7", + "jspdf": "^2.3.1", + "ngx-cookie-service": "^11.0.2", + "rxjs": "~6.6.0", + "tslib": "^2.0.0", + "zone.js": "~0.11.3" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1102.5", + "@angular/cli": "~11.2.5", + "@angular/compiler-cli": "~11.2.6", + "@graphql-codegen/cli": "^1.21.3", + "@graphql-codegen/typescript": "^1.21.1", + "@graphql-codegen/typescript-document-nodes": "^1.17.10", + "@types/jasmine": "~3.6.0", + "@types/node": "^12.11.1", + "codelyzer": "^6.0.0", + "jasmine-core": "~3.6.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~6.1.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage": "~2.0.3", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "tslint": "~6.1.0", + "typescript": "~4.1.5" + } + }, + "node_modules/@amcharts/amcharts4": { + "version": "4.10.16", + "resolved": "https://registry.npmjs.org/@amcharts/amcharts4/-/amcharts4-4.10.16.tgz", + "integrity": "sha512-RCXQ/7g6DXTQ2owEgDWojVD1FSe+6oiKeNWNxC9+miDNgX2OU/y2g8rDo65OXf5/7ZhD5uvu7msh/Ma4vw9EtA==", + "dependencies": { + "@babel/runtime": "^7.6.3", + "core-js": "^3.0.0", + "d3-force": "^2.0.1", + "d3-geo": "^2.0.1", + "d3-geo-projection": "^3.0.0", + "pdfmake": "^0.1.36", + "polylabel": "^1.0.2", + "raf": "^3.4.1", + "regression": "^2.0.1", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "tslib": "^2.0.1", + "venn.js": "^0.2.20", + "xlsx": "^0.16.4" + } + }, + "node_modules/@amcharts/amcharts4-fonts": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@amcharts/amcharts4-fonts/-/amcharts4-fonts-4.0.1.tgz", + "integrity": "sha512-IUpBxtgzrScWDMoA2Ma4NIV9Uhd6VxJu3vn+hF5ObdTXAiwzj6gnVawEhrh8zojWumVIb5IZ0EvuCWRjEIWhIg==" + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1102.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.5.tgz", + "integrity": "sha512-lVc6NmEAZZPzvc18GzMFLoxqKKvPlNOg4vEtFsFldZmrydLJJGFi4KAs2WaJd8qVR1XuY4el841cjDQAJSq6sQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.2.5", + "rxjs": "6.6.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/architect/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-angular": { + "version": "0.1102.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1102.5.tgz", + "integrity": "sha512-iAq/KbRq6kuA17rQZ67/0zQHEzpC9RzvtMZQ3wiiFsOmW5AIV5scjP7e6dn+F6vXZA44X4gCH5AUUkOLXyEtfg==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1102.5", + "@angular-devkit/build-optimizer": "0.1102.5", + "@angular-devkit/build-webpack": "0.1102.5", + "@angular-devkit/core": "11.2.5", + "@babel/core": "7.12.10", + "@babel/generator": "7.12.11", + "@babel/plugin-transform-async-to-generator": "7.12.1", + "@babel/plugin-transform-runtime": "7.12.10", + "@babel/preset-env": "7.12.11", + "@babel/runtime": "7.12.5", + "@babel/template": "7.12.7", + "@discoveryjs/json-ext": "0.5.2", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "11.2.5", + "ansi-colors": "4.1.1", + "autoprefixer": "10.2.4", + "babel-loader": "8.2.2", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.2", + "copy-webpack-plugin": "6.3.2", + "core-js": "3.8.3", + "critters": "0.0.7", + "css-loader": "5.0.1", + "cssnano": "4.1.10", + "file-loader": "6.2.0", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "https-proxy-agent": "5.0.0", + "inquirer": "7.3.3", + "jest-worker": "26.6.2", + "karma-source-map-support": "1.4.0", + "less": "4.1.1", + "less-loader": "7.3.0", + "license-webpack-plugin": "2.3.11", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "1.3.5", + "minimatch": "3.0.4", + "open": "7.4.0", + "ora": "5.3.0", + "parse5-html-rewriting-stream": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "8.2.4", + "postcss-import": "14.0.0", + "postcss-loader": "4.2.0", + "raw-loader": "4.0.2", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.38.4", + "rxjs": "6.6.3", + "sass": "1.32.6", + "sass-loader": "10.1.1", + "semver": "7.3.4", + "source-map": "0.7.3", + "source-map-loader": "1.1.3", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.4.2", + "style-loader": "2.0.0", + "stylus": "0.54.8", + "stylus-loader": "4.3.3", + "terser": "5.5.1", + "terser-webpack-plugin": "4.2.3", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "webpack": "4.44.2", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.2", + "webpack-merge": "5.7.3", + "webpack-sources": "2.2.0", + "webpack-subresource-integrity": "1.5.2", + "worker-plugin": "5.0.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^11.0.0 || ^11.2.0-next", + "@angular/localize": "^11.0.0 || ^11.2.0-next", + "@angular/service-worker": "^11.0.0 || ^11.2.0-next", + "karma": "^5.2.0 || ^6.0.0", + "ng-packagr": "^11.0.0 || ^11.2.0-next", + "protractor": "^7.0.0", + "tailwindcss": "^2.0.0", + "tslint": "^6.1.0", + "typescript": "~4.0.0 || ~4.1.0" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "@angular/service-worker": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tailwindcss": { + "optional": true + }, + "tslint": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/build-optimizer": { + "version": "0.1102.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1102.5.tgz", + "integrity": "sha512-ujTwrevgMRNyWir4IdnJEdDRkVSLqugRpL6cU9OeqGn6Bu+zEzZQokLkMZvbw00eEKlf5Siej4hEeF1Hnx+LUA==", + "dev": true, + "dependencies": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.1.0", + "typescript": "4.1.5", + "webpack-sources": "2.2.0" + }, + "bin": { + "build-optimizer": "src/build-optimizer/cli.js" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1102.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1102.5.tgz", + "integrity": "sha512-VMsi+mFwgPUQi7eEc2oKcf7X0xD0R1xfoguLS/+HGy3sfh+b7oJy3BU4+TRzDPBtGj6vWvENK2rwHFN3cBWvxA==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1102.5", + "@angular-devkit/core": "11.2.5", + "rxjs": "6.6.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^4.6.0", + "webpack-dev-server": "^3.1.4" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/build-webpack/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/core": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.5.tgz", + "integrity": "sha512-DRFvEHRKoC+hTwcOAJqLe6UQa+bpXc/1IGCMHWEbuply0KIFIGQOlmaYwFZKixz3HdFZlmoCMcAVkAXvyaWVsQ==", + "dev": true, + "dependencies": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular-devkit/schematics": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.5.tgz", + "integrity": "sha512-7RoWgpMvhljPhW9CMz1EtqkwNnGpnsPyy0N29ClHPUq+o8wLR0hvbLBDz1fKSF7j1AwRccaQSNTj8KWsjzQJLQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.2.5", + "ora": "5.3.0", + "rxjs": "6.6.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@angular-devkit/schematics/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@angular/animations": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-11.2.6.tgz", + "integrity": "sha512-fci034QakkoIrFeY/uOmDvf6AupZ7ziU1FlBMs/wn4HOqwsPCofpawvFQnfj5nez1+KM5JOJ1VHmZKJupkWfgw==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "11.2.6" + } + }, + "node_modules/@angular/cdk": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-11.2.5.tgz", + "integrity": "sha512-ugalSDLME5E9JlxcRR8RGlOYlaV6rIzxOVQrGRBzY2tdhMT4Ng+BFtCkq1K88AU1sTLHq54xg9Xkfn7b5W2kiA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "optionalDependencies": { + "parse5": "^5.0.0" + }, + "peerDependencies": { + "@angular/common": "^11.0.0 || ^12.0.0-0", + "@angular/core": "^11.0.0 || ^12.0.0-0" + } + }, + "node_modules/@angular/cdk/node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + }, + "node_modules/@angular/cli": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-11.2.5.tgz", + "integrity": "sha512-GIwK8l6wtg/++8aDYW++LSf7v1uqDtB6so2rPjNlOm7oYk5iqM73KaorQb/1A52oxWE3IRSJLNQaSyUlWvHvSA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@angular-devkit/architect": "0.1102.5", + "@angular-devkit/core": "11.2.5", + "@angular-devkit/schematics": "11.2.5", + "@schematics/angular": "11.2.5", + "@schematics/update": "0.1102.5", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.1", + "ini": "2.0.0", + "inquirer": "7.3.3", + "jsonc-parser": "3.0.0", + "npm-package-arg": "8.1.0", + "npm-pick-manifest": "6.1.0", + "open": "7.4.0", + "ora": "5.3.0", + "pacote": "11.2.4", + "resolve": "1.19.0", + "rimraf": "3.0.2", + "semver": "7.3.4", + "symbol-observable": "3.0.0", + "universal-analytics": "0.4.23", + "uuid": "8.3.2" + }, + "bin": { + "ng": "bin/ng" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/common": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-11.2.6.tgz", + "integrity": "sha512-q1yR6bktd5p987gLEKiFY4CrHcmBxks9R6GcdgzGneQsucDtGESzEKdcJ0uaMXE+9teS+fQy5GvXel6DlA/J+w==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "11.2.6", + "rxjs": "^6.5.3" + } + }, + "node_modules/@angular/compiler": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-11.2.6.tgz", + "integrity": "sha512-3ijsCxnCLU1V1hy4UMf9qtMz5LR+wCdVFDqktEQccN9YEkN0cNtOc8Nu9EV9/mc2tqd1Q4xSBpb2o2mvpy7AhQ==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-11.2.6.tgz", + "integrity": "sha512-1OC8UkySaLzaw3aSrm8A6SA88CxQAdA4ffaOhBLE/Ee6CxpneVxn3ORlnccqnS8zWyEpschbootPJV56U3Azeg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.8.6", + "@babel/types": "^7.8.6", + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "^16.1.1" + }, + "bin": { + "ivy-ngcc": "ngcc/main-ivy-ngcc.js", + "ng-xi18n": "src/extract_i18n.js", + "ngc": "src/main.js", + "ngcc": "ngcc/main-ngcc.js" + }, + "engines": { + "node": ">=10.0" + }, + "peerDependencies": { + "@angular/compiler": "11.2.6", + "typescript": ">=4.0 <4.2" + } + }, + "node_modules/@angular/compiler-cli/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular/compiler-cli/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular/core": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-11.2.6.tgz", + "integrity": "sha512-lS5JOQ/Y9gbk5WiMnCp5Zyz2pRIoZ+IWLOXHU5rkQeXy0zE3eMJhw0FfpEK+X5CeSNl2EPVSPLT0MtDtbNPodg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3", + "zone.js": "^0.10.2 || ^0.11.3" + } + }, + "node_modules/@angular/forms": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-11.2.6.tgz", + "integrity": "sha512-0xxayXCNc8lPQhDj5q/hAcG55cmDXPSBn2cxX4V+uDSGwKU1+h2CQID6gJdBJBh5wOaeMe6h8dK2s1pRgok66A==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "11.2.6", + "@angular/core": "11.2.6", + "@angular/platform-browser": "11.2.6", + "rxjs": "^6.5.3" + } + }, + "node_modules/@angular/material": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-11.2.5.tgz", + "integrity": "sha512-zdzAexDl0WQ2NhRXpa6CKzIvenozLcLl0kmAJBSoUYclES9B+t86tPdWW5CKl4zJOHDM2ZnxhzkYGEffS9Qvug==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/animations": "^11.0.0 || ^12.0.0-0", + "@angular/cdk": "11.2.5", + "@angular/common": "^11.0.0 || ^12.0.0-0", + "@angular/core": "^11.0.0 || ^12.0.0-0", + "@angular/forms": "^11.0.0 || ^12.0.0-0" + } + }, + "node_modules/@angular/platform-browser": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-11.2.6.tgz", + "integrity": "sha512-xnYpfoqWyQOUngfbHefsZMyelCSAaxpopu/WYP0gpbYh9qJiVhsN9s6zRMqOIPueq9lmvlEuGBMgaJjeD6Ei7Q==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/animations": "11.2.6", + "@angular/common": "11.2.6", + "@angular/core": "11.2.6" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.2.6.tgz", + "integrity": "sha512-B56b8yPW3vAmPe4VONiBYEMZ6B1i5CUkJvit8qWWK3y7t5XrYOihIiGC0UqEDaw/uAg72GXjixspcxZWan5e9w==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "11.2.6", + "@angular/compiler": "11.2.6", + "@angular/core": "11.2.6", + "@angular/platform-browser": "11.2.6" + } + }, + "node_modules/@angular/router": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-11.2.6.tgz", + "integrity": "sha512-n/3Sp36slXzRXUcUO9nVs3CkgFxa6U9A8GENeyxq9XQtcE912jOP4dzjDi3hlaNKbX9ijOyEh505KpqmiSYATg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "11.2.6", + "@angular/core": "11.2.6", + "@angular/platform-browser": "11.2.6", + "rxjs": "^6.5.3" + } + }, + "node_modules/@ardatan/aggregate-error": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz", + "integrity": "sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==", + "dev": true, + "dependencies": { + "tslib": "~2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@ardatan/aggregate-error/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.12.13" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.11.tgz", + "integrity": "sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==", + "dev": true + }, + "node_modules/@babel/core": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", + "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", + "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", + "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.12" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", + "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-module-transforms/node_modules/@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "dev": true + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", + "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helpers": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/highlight": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", + "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", + "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz", + "integrity": "sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "engines": { + "node": ">=4" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", + "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz", + "integrity": "sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-flow": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", + "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz", + "integrity": "sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.13.12" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz", + "integrity": "sha512-xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "semver": "^5.5.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.11.tgz", + "integrity": "sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.7", + "@babel/helper-compilation-targets": "^7.12.5", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.11", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.7", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.11", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.7", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.10", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.11", + "core-js-compat": "^3.8.0", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/runtime-corejs3": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz", + "integrity": "sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==", + "optional": true, + "dependencies": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "node_modules/@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/traverse/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/types": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@discoveryjs/json-ext": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@graphql-codegen/cli": { + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-1.21.3.tgz", + "integrity": "sha512-jwg0mKhseg0QI4/T4IQcttTBCZgnahiTWqnYWIK+E8nrbXCE9o2hxvaYin/Kq9+5oFtxDePED56cjVs/ESRw6g==", + "dev": true, + "dependencies": { + "@graphql-codegen/core": "1.17.9", + "@graphql-codegen/plugin-helpers": "^1.18.4", + "@graphql-tools/apollo-engine-loader": "^6", + "@graphql-tools/code-file-loader": "^6", + "@graphql-tools/git-loader": "^6", + "@graphql-tools/github-loader": "^6", + "@graphql-tools/graphql-file-loader": "^6", + "@graphql-tools/json-file-loader": "^6", + "@graphql-tools/load": "^6", + "@graphql-tools/prisma-loader": "^6", + "@graphql-tools/url-loader": "^6", + "@graphql-tools/utils": "^7.0.0", + "ansi-escapes": "^4.3.1", + "chalk": "^4.1.0", + "change-case-all": "1.0.12", + "chokidar": "^3.4.3", + "common-tags": "^1.8.0", + "cosmiconfig": "^7.0.0", + "debounce": "^1.2.0", + "dependency-graph": "^0.11.0", + "detect-indent": "^6.0.0", + "glob": "^7.1.6", + "graphql-config": "^3.2.0", + "indent-string": "^4.0.0", + "inquirer": "^7.3.3", + "is-glob": "^4.0.1", + "json-to-pretty-yaml": "^1.2.2", + "latest-version": "5.1.0", + "listr": "^0.14.3", + "listr-update-renderer": "^0.5.0", + "log-symbols": "^4.0.0", + "minimatch": "^3.0.4", + "mkdirp": "^1.0.4", + "string-env-interpolation": "^1.0.1", + "ts-log": "^2.2.3", + "tslib": "~2.1.0", + "valid-url": "^1.0.9", + "wrap-ansi": "^7.0.0", + "yaml": "^1.10.0", + "yargs": "^16.1.1" + }, + "bin": { + "gql-gen": "bin.js", + "graphql-code-generator": "bin.js", + "graphql-codegen": "bin.js" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@graphql-codegen/cli/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": 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/@graphql-codegen/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==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@graphql-codegen/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==", + "dev": true + }, + "node_modules/@graphql-codegen/cli/node_modules/cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "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/@graphql-codegen/cli/node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/@graphql-codegen/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/cli/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==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@graphql-codegen/cli/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==", + "dev": true, + "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/@graphql-codegen/cli/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@graphql-codegen/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/core": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-1.17.9.tgz", + "integrity": "sha512-7nwy+bMWqb0iYJ2DKxA9UiE16meeJ2Ch2XWS/N/ZnA0snTR+GZ20USI8z6YqP1Fuist7LvGO1MbitO2qBT8raA==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^1.18.2", + "@graphql-tools/merge": "^6", + "@graphql-tools/utils": "^6", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/@graphql-tools/utils": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.4.tgz", + "integrity": "sha512-ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==", + "dev": true, + "dependencies": { + "@ardatan/aggregate-error": "0.0.6", + "camel-case": "4.1.1", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + } + }, + "node_modules/@graphql-codegen/core/node_modules/camel-case/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/@graphql-codegen/core/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@graphql-codegen/plugin-helpers": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.4.tgz", + "integrity": "sha512-dpfhUmn9GOS8ByoOPIN3V4Nn9HX7sl9NR7Hf26TgN6Clg7cQvkT6XjHdS2e56Q3kWrxZT1zJ1sEa67D3tj9ZtQ==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^7.0.0", + "common-tags": "1.8.0", + "import-from": "3.0.0", + "lodash": "~4.17.20", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/typescript": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-1.21.1.tgz", + "integrity": "sha512-JF6Vsu5HSv3dAoS2ca3PFLUN0qVxotex/+BgWw/6SKhtd83MUPnzJ/RU3lACg4vuNTCWeQSeGvg8x5qrw9Go9w==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^1.18.3", + "@graphql-codegen/visitor-plugin-common": "^1.19.0", + "auto-bind": "~4.0.0", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-document-nodes": { + "version": "1.17.10", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-document-nodes/-/typescript-document-nodes-1.17.10.tgz", + "integrity": "sha512-0xKilL6J7QeBwE7lH86RkTcHRU1Z49nEMVMU0n3o9u4Yf+757GoaGhliYboVZFXHgE8n16HbNBxIO+oIN6hJAA==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^1.18.3", + "@graphql-codegen/visitor-plugin-common": "^1.19.0", + "auto-bind": "~4.0.0", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-1.19.1.tgz", + "integrity": "sha512-MJZXe5vXxV6PLOgHhQoz93gnjzJtbnVQXQKqVEcbyB9W8ImoKuTHsEf/eJ6yCL79f7X/2dnOOM84d5Osh1eaKg==", + "dev": true, + "dependencies": { + "@graphql-codegen/plugin-helpers": "^1.18.4", + "@graphql-tools/optimize": "^1.0.1", + "@graphql-tools/relay-operation-optimizer": "^6", + "array.prototype.flatmap": "^1.2.4", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.12", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-codegen/visitor-plugin-common/node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-6.2.5.tgz", + "integrity": "sha512-CE4uef6PyxtSG+7OnLklIr2BZZDgjO89ZXK47EKdY7jQy/BQD/9o+8SxPsgiBc+2NsDJH2I6P/nqoaJMOEat6g==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^7.0.0", + "cross-fetch": "3.0.6", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@graphql-tools/batch-execute": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.0.0.tgz", + "integrity": "sha512-+ywPfK6N2Ddna6oOa5Qb1Mv7EA8LOwRNOAPP9dL37FEhksJM9pYqPSceUcqMqg7S9b0+Cgr78s408rgvurV3/Q==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^7.0.0", + "dataloader": "2.0.0", + "is-promise": "4.0.0", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/batch-execute/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@graphql-tools/code-file-loader": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-6.3.1.tgz", + "integrity": "sha512-ZJimcm2ig+avgsEOWWVvAaxZrXXhiiSZyYYOJi0hk9wh5BxZcLUNKkTp6EFnZE/jmGUwuos3pIjUD3Hwi3Bwhg==", + "dev": true, + "dependencies": { + "@graphql-tools/graphql-tag-pluck": "^6.5.1", + "@graphql-tools/utils": "^7.0.0", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/delegate": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.0.10.tgz", + "integrity": "sha512-6Di9ia5ohoDvrHuhj2cak1nJGhIefJmUsd3WKZcJ2nu2yZAFawWMxGvQImqv3N7iyaWKiVhrrK8Roi/JrYhdKg==", + "dev": true, + "dependencies": { + "@ardatan/aggregate-error": "0.0.6", + "@graphql-tools/batch-execute": "^7.0.0", + "@graphql-tools/schema": "^7.0.0", + "@graphql-tools/utils": "^7.1.6", + "dataloader": "2.0.0", + "is-promise": "4.0.0", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/git-loader": { + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-6.2.6.tgz", + "integrity": "sha512-ooQTt2CaG47vEYPP3CPD+nbA0F+FYQXfzrB1Y1ABN9K3d3O2RK3g8qwslzZaI8VJQthvKwt0A95ZeE4XxteYfw==", + "dev": true, + "dependencies": { + "@graphql-tools/graphql-tag-pluck": "^6.2.6", + "@graphql-tools/utils": "^7.0.0", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/github-loader": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-6.2.5.tgz", + "integrity": "sha512-DLuQmYeNNdPo8oWus8EePxWCfCAyUXPZ/p1PWqjrX/NGPyH2ZObdqtDAfRHztljt0F/qkBHbGHCEk2TKbRZTRw==", + "dev": true, + "dependencies": { + "@graphql-tools/graphql-tag-pluck": "^6.2.6", + "@graphql-tools/utils": "^7.0.0", + "cross-fetch": "3.0.6", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/github-loader/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@graphql-tools/graphql-file-loader": { + "version": "6.2.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.7.tgz", + "integrity": "sha512-5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==", + "dev": true, + "dependencies": { + "@graphql-tools/import": "^6.2.6", + "@graphql-tools/utils": "^7.0.0", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.5.1.tgz", + "integrity": "sha512-7qkm82iFmcpb8M6/yRgzjShtW6Qu2OlCSZp8uatA3J0eMl87TxyJoUmL3M3UMMOSundAK8GmoyNVFUrueueV5Q==", + "dev": true, + "dependencies": { + "@babel/parser": "7.12.16", + "@babel/traverse": "7.12.13", + "@babel/types": "7.12.13", + "@graphql-tools/utils": "^7.0.0", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/generator": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/generator/node_modules/@babel/types": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/parser": { + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@graphql-tools/import": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", + "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "dev": true, + "dependencies": { + "resolve-from": "5.0.0", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/import/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-tools/json-file-loader": { + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.6.tgz", + "integrity": "sha512-CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^7.0.0", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/json-file-loader/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@graphql-tools/load": { + "version": "6.2.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.7.tgz", + "integrity": "sha512-b1qWjki1y/QvGtoqW3x8bcwget7xmMfLGsvGFWOB6m38tDbzVT3GlJViAC0nGPDks9OCoJzAdi5IYEkBaqH5GQ==", + "dev": true, + "dependencies": { + "@graphql-tools/merge": "^6.2.9", + "@graphql-tools/utils": "^7.5.0", + "globby": "11.0.2", + "import-from": "3.0.0", + "is-glob": "4.0.1", + "p-limit": "3.1.0", + "tslib": "~2.1.0", + "unixify": "1.0.0", + "valid-url": "1.0.9" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/merge": { + "version": "6.2.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.10.tgz", + "integrity": "sha512-dM3n37PcslvhOAkCz7Cwk0BfoiSVKXGmCX+VMZkATbXk/0vlxUfNEpVfA5yF4IkP27F04SzFQSaNrbD0W2Rszw==", + "dev": true, + "dependencies": { + "@graphql-tools/schema": "^7.0.0", + "@graphql-tools/utils": "^7.5.0", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/optimize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.0.1.tgz", + "integrity": "sha512-cRlUNsbErYoBtzzS6zXahXeTBZGPVlPHXCpnEZ0XiK/KY/sQL96cyzak0fM/Gk6qEI9/l32MYEICjasiBQrl5w==", + "dev": true, + "dependencies": { + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/optimize/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@graphql-tools/prisma-loader": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-6.3.0.tgz", + "integrity": "sha512-9V3W/kzsFBmUQqOsd96V4a4k7Didz66yh/IK89B1/rrvy9rYj+ULjEqR73x9BYZ+ww9FV8yP8LasWAJwWaqqJQ==", + "dev": true, + "dependencies": { + "@graphql-tools/url-loader": "^6.8.2", + "@graphql-tools/utils": "^7.0.0", + "@types/http-proxy-agent": "^2.0.2", + "@types/js-yaml": "^4.0.0", + "@types/json-stable-stringify": "^1.0.32", + "@types/jsonwebtoken": "^8.5.0", + "chalk": "^4.1.0", + "debug": "^4.3.1", + "dotenv": "^8.2.0", + "graphql-request": "^3.3.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "isomorphic-fetch": "^3.0.0", + "js-yaml": "^4.0.0", + "json-stable-stringify": "^1.0.1", + "jsonwebtoken": "^8.5.1", + "lodash": "^4.17.20", + "replaceall": "^0.1.6", + "scuid": "^1.1.0", + "tslib": "~2.1.0", + "yaml-ast-parser": "^0.0.43" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@graphql-tools/prisma-loader/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==", + "dev": true + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": 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/@graphql-tools/prisma-loader/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@graphql-tools/prisma-loader/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/js-yaml": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@graphql-tools/prisma-loader/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.3.0.tgz", + "integrity": "sha512-Or3UgRvkY9Fq1AAx7q38oPqFmTepLz7kp6wDHKyR0ceG7AvHv5En22R12mAeISInbhff4Rpwgf6cE8zHRu6bCw==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^7.1.0", + "relay-compiler": "10.1.0", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@graphql-tools/schema": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.3.tgz", + "integrity": "sha512-ZY76hmcJlF1iyg3Im0sQ3ASRkiShjgv102vLTVcH22lEGJeCaCyyS/GF1eUHom418S60bS8Th6+autRUxfBiBg==", + "dev": true, + "dependencies": { + "@graphql-tools/utils": "^7.1.2", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/url-loader": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.2.tgz", + "integrity": "sha512-YzsXSCOwlSj8UqOMhQThPzgEChgS/MonyWV7f0WKmN9gAT/f3fPaUcYhVamsH0vGbvTkfNM4JdoZO/39amRs5Q==", + "dev": true, + "dependencies": { + "@graphql-tools/delegate": "^7.0.1", + "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/wrap": "^7.0.4", + "@types/websocket": "1.0.2", + "cross-fetch": "3.1.1", + "eventsource": "1.1.0", + "extract-files": "9.0.0", + "form-data": "4.0.0", + "graphql-upload": "^11.0.0", + "graphql-ws": "4.2.2", + "is-promise": "4.0.0", + "isomorphic-ws": "4.0.1", + "sse-z": "0.3.0", + "sync-fetch": "0.3.0", + "tslib": "~2.1.0", + "valid-url": "1.0.9", + "ws": "7.4.4" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/url-loader/node_modules/cross-fetch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.1.tgz", + "integrity": "sha512-eIF+IHQpRzoGd/0zPrwQmHwDC90mdvjk+hcbYhKoaRrEk4GEIDqdjs/MljmdPPoHTQudbmWS+f0hZsEpFaEvWw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.1" + } + }, + "node_modules/@graphql-tools/url-loader/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==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@graphql-tools/utils": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.6.0.tgz", + "integrity": "sha512-YCZDDdhfb4Yhie0IH031eGdvQG8C73apDuNg6lqBNbauNw45OG/b8wi3+vuMiDnJTJN32GQUb1Gt9gxDKoRDKw==", + "dev": true, + "dependencies": { + "@ardatan/aggregate-error": "0.0.6", + "camel-case": "4.1.2", + "tslib": "~2.1.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/wrap": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.5.tgz", + "integrity": "sha512-KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==", + "dev": true, + "dependencies": { + "@graphql-tools/delegate": "^7.0.7", + "@graphql-tools/schema": "^7.1.2", + "@graphql-tools/utils": "^7.2.1", + "is-promise": "4.0.0", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/@graphql-tools/wrap/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "dependencies": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "node_modules/@ngtools/webpack": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-11.2.5.tgz", + "integrity": "sha512-7fhg8hvqTiTS5ESiEN4xR2qRnOVX0rhVSckMXbAFvNYTwQOuS865RiBrYCJ4CsKhGJ9P7XS5i2EIwA3/aLSivg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.2.5", + "enhanced-resolve": "5.7.0", + "webpack-sources": "2.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^11.0.0 || ^11.2.0-next", + "typescript": "~4.0.0 || ~4.1.0", + "webpack": "^4.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/ci-detect": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", + "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==", + "dev": true + }, + "node_modules/@npmcli/git": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.0.6.tgz", + "integrity": "sha512-a1MnTfeRPBaKbFY07fd+6HugY1WAkKJzdiJvlRub/9o5xz2F/JtPacZZapx5zRJUQFIzSL677vmTSxEcDMrDbg==", + "dev": true, + "dependencies": { + "@npmcli/promise-spawn": "^1.1.0", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.3", + "npm-pick-manifest": "^6.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.2", + "unique-filename": "^1.1.1", + "which": "^2.0.2" + } + }, + "node_modules/@npmcli/git/node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/@npmcli/git/node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/git/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@npmcli/git/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "dependencies": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "installed-package-contents": "index.js" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/node-gyp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", + "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", + "dev": true + }, + "node_modules/@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "dependencies": { + "infer-owner": "^1.0.4" + } + }, + "node_modules/@npmcli/run-script": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.4.tgz", + "integrity": "sha512-Yd9HXTtF1JGDXZw0+SOn+mWLYS0e7bHBHVC/2C8yqs4wUrs/k8rwBSinD7rfk+3WG/MFGRZKxjyoD34Pch2E/A==", + "dev": true, + "dependencies": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "infer-owner": "^1.0.4", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" + } + }, + "node_modules/@npmcli/run-script/node_modules/read-package-json-fast": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.2.tgz", + "integrity": "sha512-5fyFUyO9B799foVk4n6ylcoAktG/FbE3jwRKxvwaeSrIunaoMc0u81dzXxjeAFKOce7O5KncdfwpGvvs6r5PsQ==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@samverschueren/stream-to-observable": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", + "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", + "dev": true, + "dependencies": { + "any-observable": "^0.3.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "rxjs": { + "optional": true + }, + "zen-observable": { + "optional": true + } + } + }, + "node_modules/@schematics/angular": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.5.tgz", + "integrity": "sha512-pjaK0gZyqhzgAVxMKElG6cDpAvNZ3adVCTA8dhEixpH+JaQdoczl59hMn7rH75yQW0PApe+8g7HMwVK6bLRmxQ==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.2.5", + "@angular-devkit/schematics": "11.2.5", + "jsonc-parser": "3.0.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/update": { + "version": "0.1102.5", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1102.5.tgz", + "integrity": "sha512-iz9pM8mabieqQnPZjrqP5jfRFvPm81/uIg46kY3KjtDtSBi4GAF2dnFyX1dC2mG1rq+e+8zeQLvOvhdLifYlEA==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.2.5", + "@angular-devkit/schematics": "11.2.5", + "@yarnpkg/lockfile": "1.1.0", + "ini": "2.0.0", + "npm-package-arg": "^8.0.0", + "pacote": "11.2.4", + "semver": "7.3.4", + "semver-intersect": "1.4.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": "^6.11.0 || ^7.5.6", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "dependencies": { + "defer-to-connect": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/component-emitter": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", + "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==", + "dev": true + }, + "node_modules/@types/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==", + "dev": true + }, + "node_modules/@types/cors": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", + "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", + "dev": true + }, + "node_modules/@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/http-proxy-agent": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/http-proxy-agent/-/http-proxy-agent-2.0.2.tgz", + "integrity": "sha512-2S6IuBRhqUnH1/AUx9k8KWtY3Esg4eqri946MnxTG5HwehF1S5mqLln8fcyMiuQkY72p2gH3W+rIPqp5li0LyQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/jasmine": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.7.tgz", + "integrity": "sha512-8dtfiykrpe4Ysn6ONj0tOjmpDIh1vWxPk80eutSeWmyaJvAZXZ84219fS4gLrvz05eidhp7BP17WVQBaXHSyXQ==", + "dev": true + }, + "node_modules/@types/js-yaml": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-4vlpCM5KPCL5CfGmTbpjwVKbISRYhduEJvvUWsH5EB7QInhEj94XPZ3ts/9FPiLZFqYO0xoW4ZL8z2AabTGgJA==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "node_modules/@types/json-stable-stringify": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.32.tgz", + "integrity": "sha512-q9Q6+eUEGwQkv4Sbst3J4PNgDOvpuVuKj79Hl/qnmBMEIPzB5QoFRUtjcgcg2xNUZyYUGXBk5wYIBKHt0A+Mxw==", + "dev": true + }, + "node_modules/@types/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-rNAPdomlIUX0i0cg2+I+Q1wOUr531zHBQ+cV/28PJ39bSPKjahatZZ2LMuhiguETkCgLVzfruw/ZvNMNkKoSzw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "12.20.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.6.tgz", + "integrity": "sha512-sRVq8d+ApGslmkE9e3i+D3gFGk7aZHAT+G4cIpIEdLJYPsWiSPwcAnJEjddLQQDqV3Ra2jOclX/Sv6YrvGYiWA==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "node_modules/@types/raf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.0.tgz", + "integrity": "sha512-taW5/WYqo36N7V39oYyHP9Ipfd5pNFvGTIQsNGj86xV88YQ7GnI30/yMfKDF7Zgin0m3e+ikX88FvImnK4RjGw==", + "optional": true + }, + "node_modules/@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "node_modules/@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "node_modules/@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "dependencies": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + } + }, + "node_modules/@types/webpack-sources/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/websocket": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.2.tgz", + "integrity": "sha512-B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-node/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-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/adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "adler32": "bin/adler32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true, + "engines": { + "node": ">=0.3.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/agentkeepalive": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "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-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "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==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/align-text/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/angular-auth-oidc-client": { + "version": "11.6.4", + "resolved": "https://registry.npmjs.org/angular-auth-oidc-client/-/angular-auth-oidc-client-11.6.4.tgz", + "integrity": "sha512-5nLKNuqXe9oplmk7IYW8g7WFJ7FOseDA9m+retOaXxrjSFtWL7o0UdnskrYOqoEsWBeeqhCLRNPDBP1d8D7tRw==", + "dependencies": { + "common-tags": "^1.8.0", + "jsrsasign-reduced": "^8.0.15", + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "^11.0.5", + "@angular/core": "^11.0.5", + "@angular/router": "^11.0.5", + "rxjs": ">= 6.0.0" + } + }, + "node_modules/angular-oauth2-oidc": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/angular-oauth2-oidc/-/angular-oauth2-oidc-10.0.3.tgz", + "integrity": "sha512-9wC8I3e3cN6rMBOlo5JB2y3Fd2erp8pJ67t4vEVzyPbnRG6BJ4rreSOznSL9zw/2SjhC9kRV2OfFie29CUCzEg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": ">=8.0.0", + "@angular/core": ">=8.0.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "dependencies": { + "type-fest": "^0.11.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "node_modules/are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/are-we-there-yet/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/argparse/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "node_modules/arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "node_modules/array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-transform": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", + "integrity": "sha1-dJRAWIh9goPhidlUYAlHvJj+AGI=", + "dependencies": { + "escodegen": "~1.2.0", + "esprima": "~1.0.4", + "through": "~2.3.4" + } + }, + "node_modules/ast-transform/node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ast-types": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", + "integrity": "sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/autoprefixer": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.4.tgz", + "integrity": "sha512-DCCdUQiMD+P/as8m3XkeTUkUKuuRqLGcwD0nll7wevhqoJfMRpJlkFd1+MQh1pvupjiQuip42lc/VFvfUTMSKw==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.1", + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "fraction.js": "^4.0.13", + "normalize-range": "^0.1.2", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "node_modules/axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "dependencies": { + "ast-types-flow": "0.0.7" + } + }, + "node_modules/babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.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/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/babel-loader/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", + "dev": true + }, + "node_modules/babel-preset-fbjs": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz", + "integrity": "sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw==", + "dev": true, + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.", + "hasInstallScript": true + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true, + "engines": { + "node": "^4.5.0 || >= 5.9" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "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==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "blocking-proxy": "built/lib/bin.js" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "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==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brfs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", + "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", + "dependencies": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^3.0.2", + "through2": "^2.0.0" + }, + "bin": { + "brfs": "bin/cmd.js" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/brotli": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.2.tgz", + "integrity": "sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y=", + "dependencies": { + "base64-js": "^1.1.2" + } + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", + "integrity": "sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk=", + "dependencies": { + "ast-transform": "0.0.0", + "ast-types": "^0.7.0", + "browser-resolve": "^1.8.1" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + } + }, + "node_modules/browserstack/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/browserstack/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/browserstack/node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "bin": { + "btoa": "bin/btoa.js" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", + "dev": true + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "node_modules/busboy": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", + "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "dev": true, + "dependencies": { + "dicer": "0.3.0" + }, + "engines": { + "node": ">=4.5.0" + } + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "dependencies": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "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.30001203", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001203.tgz", + "integrity": "sha512-/I9tvnzU/PHMH7wBPrfDMSuecDeUKerjCPX7D0xBbaJZPxoT9m+yYxt0zCTkcijCkjTdim3H56Zm0i5Adxch4w==", + "dev": true + }, + "node_modules/canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "node_modules/canvg": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.7.tgz", + "integrity": "sha512-4sq6iL5Q4VOXS3PL1BapiXIZItpxYyANVzsAKpTPS5oq4u3SKbGfUcbZh2gdLCQ3jWpG/y5wRkMlBBAJhXeiZA==", + "optional": true, + "dependencies": { + "@babel/runtime-corejs3": "^7.9.6", + "@types/raf": "^3.4.0", + "raf": "^3.4.1", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^5.0.5" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cfb": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz", + "integrity": "sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==", + "dependencies": { + "adler-32": "~1.2.0", + "crc-32": "~1.2.0", + "printj": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "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==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.12.tgz", + "integrity": "sha512-zdQus7R0lkprF99lrWUC5bFj6Nog4Xt4YCEjQ/vM4vbc6b5JHFBQMxRPAjfx+HJH8WxMzH0E+lQ8yQJLgmPCBg==", + "dev": true, + "dependencies": { + "change-case": "^4.1.1", + "is-lower-case": "^2.0.1", + "is-upper-case": "^2.0.1", + "lower-case": "^2.0.1", + "lower-case-first": "^2.0.1", + "sponge-case": "^1.0.0", + "swap-case": "^2.0.1", + "title-case": "^3.0.2", + "upper-case": "^2.0.1", + "upper-case-first": "^2.0.1" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/chrome-trace-event/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-dependency-plugin": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", + "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "webpack": ">=4.0.1" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/classlist.js": { + "version": "1.1.20150312", + "resolved": "https://registry.npmjs.org/classlist.js/-/classlist.js-1.1.20150312.tgz", + "integrity": "sha1-HXCEL3Ai8I2awIbOaeWyUPLFd4k=" + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "dependencies": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "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==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.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==", + "dev": true, + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codelyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", + "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", + "dev": true, + "dependencies": { + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" + }, + "peerDependencies": { + "@angular/compiler": ">=2.3.1 <12.0.0 || ^11.0.0-next || ^11.1.0-next || ^11.2.0-next", + "@angular/core": ">=2.3.1 <12.0.0 || ^11.0.0-next || ^11.1.0-next || ^11.2.0-next", + "tslint": "^5.0.0 || ^6.0.0" + } + }, + "node_modules/codelyzer/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codelyzer/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/codelyzer/node_modules/zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", + "dev": true + }, + "node_modules/codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", + "dependencies": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "bin": { + "codepage": "bin/codepage.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/codepage/node_modules/commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "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==", + "dev": true, + "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": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/color-string": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "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==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "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/common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "dependencies": { + "arity-n": "^1.0.4" + } + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "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==", + "dev": true, + "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/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "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==", + "dev": true, + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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/concat-stream/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/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/contour_plot": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/contour_plot/-/contour_plot-0.0.1.tgz", + "integrity": "sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc=" + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true, + "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": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", + "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "dev": true, + "dependencies": { + "is-what": "^3.12.0" + } + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-concurrently/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/copy-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.3.2.tgz", + "integrity": "sha512-MgJ1uouLIbDg4ST1GzqrGQyKoXY5iPqi6fghFqarijam7FQcBa/r6Rg0VkoIuzx75Xq8iAMghyOueMkWUQ5OaA==", + "dev": true, + "dependencies": { + "cacache": "^15.0.5", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/copy-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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-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==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/core-js": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", + "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz", + "integrity": "sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==", + "dev": true, + "dependencies": { + "browserslist": "^4.16.3", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-js-pure": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.9.1.tgz", + "integrity": "sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==", + "hasInstallScript": true, + "optional": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "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==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cosmiconfig-toml-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz", + "integrity": "sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==", + "dev": true, + "dependencies": { + "@iarna/toml": "^2.2.5" + } + }, + "node_modules/crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/critters": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.7.tgz", + "integrity": "sha512-qUF2SaAWFYjNPdCcPpu68p2DnHiosia84yx5mPTlUMQjkjChR+n6sO1/I7yn2U2qNDgSPTd2SoaTIDQcUL+EwQ==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "css": "^3.0.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "pretty-bytes": "^5.3.0" + } + }, + "node_modules/critters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/critters/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": 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/critters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/critters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/critters/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/critters/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-fetch": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", + "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.1" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/crypto-js": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", + "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==" + }, + "node_modules/css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "engines": { + "node": ">4" + } + }, + "node_modules/css-declaration-sorter/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/css-declaration-sorter/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-declaration-sorter/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/css-line-break": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.1.1.tgz", + "integrity": "sha512-1feNVaM4Fyzdj4mKPIQNL2n70MmuYzAXZ1aytlROFX1JsOo070OsugwGjj7nl6jnDJWHDM8zRZswkmeYVWZJQA==", + "dependencies": { + "base64-arraybuffer": "^0.2.0" + } + }, + "node_modules/css-line-break/node_modules/base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/css-loader": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.0.1.tgz", + "integrity": "sha512-cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw==", + "dev": true, + "dependencies": { + "camelcase": "^6.2.0", + "cssesc": "^3.0.0", + "icss-utils": "^5.0.0", + "loader-utils": "^2.0.0", + "postcss": "^8.1.4", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.27.0 || ^5.0.0" + } + }, + "node_modules/css-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "dependencies": { + "css": "^2.0.0" + } + }, + "node_modules/css-parse/node_modules/css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "node_modules/css-parse/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-parse/node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "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==", + "dev": true + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "dependencies": { + "through": "X.X.X" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/cssnano-preset-default/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/cssnano-util-raw-cache/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/cssnano/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "dev": true, + "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==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/d3-array": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", + "dependencies": { + "internmap": "^1.0.0" + } + }, + "node_modules/d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + }, + "node_modules/d3-dispatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", + "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + }, + "node_modules/d3-ease": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", + "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" + }, + "node_modules/d3-force": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", + "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "dependencies": { + "d3-dispatch": "1 - 2", + "d3-quadtree": "1 - 2", + "d3-timer": "1 - 2" + } + }, + "node_modules/d3-geo": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.1.tgz", + "integrity": "sha512-M6yzGbFRfxzNrVhxDJXzJqSLQ90q1cCyb3EWFZ1LF4eWOBYxFypw7I/NFVBNXKNqxv1bqLathhYvdJ6DC+th3A==", + "dependencies": { + "d3-array": ">=2.5" + } + }, + "node_modules/d3-geo-projection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", + "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "dependencies": { + "commander": "2", + "d3-array": "1 - 2", + "d3-geo": "1.12.0 - 2", + "resolve": "^1.1.10" + }, + "bin": { + "geo2svg": "bin/geo2svg", + "geograticule": "bin/geograticule", + "geoproject": "bin/geoproject", + "geoquantize": "bin/geoquantize", + "geostitch": "bin/geostitch" + } + }, + "node_modules/d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "dependencies": { + "d3-color": "1" + } + }, + "node_modules/d3-quadtree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", + "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + }, + "node_modules/d3-selection": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" + }, + "node_modules/d3-timer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", + "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + }, + "node_modules/d3-transition": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", + "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", + "dependencies": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + } + }, + "node_modules/d3-transition/node_modules/d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" + }, + "node_modules/d3-transition/node_modules/d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "node_modules/dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dataloader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz", + "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==", + "dev": true + }, + "node_modules/date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "node_modules/date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "node_modules/del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "dependencies": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-indent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz", + "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==", + "dev": true + }, + "node_modules/dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" + }, + "node_modules/di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "node_modules/dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "dev": true, + "dependencies": { + "streamsearch": "0.1.2" + }, + "engines": { + "node": ">=4.5.0" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "dependencies": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/dompurify": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.2.7.tgz", + "integrity": "sha512-jdtDffdGNY+C76jvodNTu9jt5yYj59vuTUyx+wXdzcSwAGTYZDAQkQ7Iwx9zcGrA4ixC1syU4H3RZROqRxokxg==", + "optional": true + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "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==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", + "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", + "dependencies": { + "minimatch": "^3.0.4" + }, + "bin": { + "ignored": "bin/ignored" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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/duplexer2/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/duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/duplexify/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.3.692", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.692.tgz", + "integrity": "sha512-Ix+zDUAXWZuUzqKdhkgN5dP7ZM+IwMG4yAGFGDLpGJP/3vNEEwuHG1LIhtXUfW0FFV0j38t5PUv2n/3MFSRviQ==", + "dev": true + }, + "node_modules/elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", + "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.0", + "ws": "~7.4.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", + "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "dev": true, + "dependencies": { + "base64-arraybuffer": "0.1.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", + "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + } + }, + "node_modules/es6-set/node_modules/es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "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": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "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": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E=", + "dependencies": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=0.4.0" + }, + "optionalDependencies": { + "source-map": "~0.1.30" + } + }, + "node_modules/escodegen/node_modules/esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/escodegen/node_modules/esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "optional": true, + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "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/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "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/estree-is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", + "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==" + }, + "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": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "dev": true, + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/express/node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dev": true, + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extract-files": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", + "dev": true, + "engines": { + "node": "^10.17.0 || ^12.0.0 || >= 13.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "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==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", + "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", + "dev": true, + "dependencies": { + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "dev": true + }, + "node_modules/fflate": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz", + "integrity": "sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A==" + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "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.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "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==", + "dev": true, + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "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-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/flush-write-stream/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fmin": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/fmin/-/fmin-0.0.2.tgz", + "integrity": "sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc=", + "dependencies": { + "contour_plot": "^0.0.1", + "json2module": "^0.0.3", + "rollup": "^0.25.8", + "tape": "^4.5.1", + "uglify-js": "^2.6.2" + } + }, + "node_modules/fmin/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fmin/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fmin/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fmin/node_modules/rollup": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.25.8.tgz", + "integrity": "sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA=", + "dependencies": { + "chalk": "^1.1.1", + "minimist": "^1.2.0", + "source-map-support": "^0.3.2" + }, + "bin": { + "rollup": "bin/rollup" + } + }, + "node_modules/fmin/node_modules/source-map": { + "version": "0.1.32", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", + "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fmin/node_modules/source-map-support": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.3.tgz", + "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=", + "dependencies": { + "source-map": "0.1.32" + } + }, + "node_modules/fmin/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fmin/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", + "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/fontkit": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.8.1.tgz", + "integrity": "sha512-BsNCjDoYRxmNWFdAuK1y9bQt+igIxGtTC9u/jSFjR9MKhmI00rP1fwSvERt+5ddE82544l0XH5mzXozQVUy2Tw==", + "dependencies": { + "babel-runtime": "^6.26.0", + "brfs": "^2.0.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.1", + "clone": "^1.0.4", + "deep-equal": "^1.0.0", + "dfa": "^1.2.0", + "restructure": "^0.5.3", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.2.2", + "unicode-trie": "^0.3.0" + } + }, + "node_modules/fontkit/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "node_modules/fontkit/node_modules/unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "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/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/foundation-sites": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/foundation-sites/-/foundation-sites-6.6.3.tgz", + "integrity": "sha512-8X93wUAmUg1HhVv8uWMWnwoBLSQWSmFImJencneIZDctswn724Bq/MV1cbPZN/GFWGOB/9ngoQHztfzd4+ovCg==", + "engines": { + "node": ">=8.4.0" + }, + "peerDependencies": { + "jquery": ">=2.2.0", + "what-input": ">=4.1.0" + } + }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/fraction.js": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz", + "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/from2/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fs-capacitor": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", + "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/fs-write-stream-atomic/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/fuse.js": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.4.6.tgz", + "integrity": "sha512-/gYxR/0VpXmWSfZOIPS3rWwU8SHgsRTwWuXhyb2O6s7aRuVtHtxCkR33bNYu3wyLyNx/Wpv0vU7FZy8Vj53VNw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "dependencies": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" + }, + "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==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "node_modules/graphql": { + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", + "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-config": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-3.2.0.tgz", + "integrity": "sha512-ygEKDeQNZKpm4137560n2oY3bGM0D5zyRsQVaJntKkufWdgPg6sb9/4J1zJW2y/yC1ortAbhNho09qmeJeLa9g==", + "dev": true, + "dependencies": { + "@endemolshinegroup/cosmiconfig-typescript-loader": "3.0.2", + "@graphql-tools/graphql-file-loader": "^6.0.0", + "@graphql-tools/json-file-loader": "^6.0.0", + "@graphql-tools/load": "^6.0.0", + "@graphql-tools/merge": "^6.0.0", + "@graphql-tools/url-loader": "^6.0.0", + "@graphql-tools/utils": "^6.0.0", + "cosmiconfig": "6.0.0", + "cosmiconfig-toml-loader": "1.0.0", + "minimatch": "3.0.4", + "string-env-interpolation": "1.0.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/graphql-config/node_modules/@endemolshinegroup/cosmiconfig-typescript-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", + "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", + "dev": true, + "dependencies": { + "lodash.get": "^4", + "make-error": "^1", + "ts-node": "^9", + "tslib": "^2" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "cosmiconfig": ">=6" + } + }, + "node_modules/graphql-config/node_modules/@graphql-tools/utils": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.4.tgz", + "integrity": "sha512-ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==", + "dev": true, + "dependencies": { + "@ardatan/aggregate-error": "0.0.6", + "camel-case": "4.1.1", + "tslib": "~2.0.1" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0" + } + }, + "node_modules/graphql-config/node_modules/camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "dev": true, + "dependencies": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + } + }, + "node_modules/graphql-config/node_modules/camel-case/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/graphql-config/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "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/graphql-config/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==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graphql-config/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==", + "dev": true, + "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/graphql-config/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/graphql-config/node_modules/ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "typescript": ">=2.7" + } + }, + "node_modules/graphql-config/node_modules/tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + }, + "node_modules/graphql-request": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.4.0.tgz", + "integrity": "sha512-acrTzidSlwAj8wBNO7Q/UQHS8T+z5qRGquCQRv9J1InwR01BBWV9ObnoE+JS5nCCEj8wSGS0yrDXVDoRiKZuOg==", + "dev": true, + "dependencies": { + "cross-fetch": "^3.0.6", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" + }, + "peerDependencies": { + "graphql": "14.x || 15.x" + } + }, + "node_modules/graphql-request/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==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/graphql-tag": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz", + "integrity": "sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==", + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/graphql-upload": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", + "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", + "dev": true, + "dependencies": { + "busboy": "^0.3.1", + "fs-capacitor": "^6.1.0", + "http-errors": "^1.7.3", + "isobject": "^4.0.0", + "object-path": "^0.11.4" + }, + "engines": { + "node": "^10.13.0 || ^12.0.0 || >= 13.7.0" + }, + "funding": { + "url": "https://github.com/sponsors/jaydenseric" + }, + "peerDependencies": { + "graphql": "0.13.1 - 15" + } + }, + "node_modules/graphql-upload/node_modules/http-errors": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", + "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/graphql-upload/node_modules/isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graphql-upload/node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/graphql-ws": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.2.2.tgz", + "integrity": "sha512-b6TLtWLAmKunD72muL9EeItRGpio9+V3Cx4zJsBkRA+3wxzTWXDvQr9/3qSwJ3D/2abz0ys2KHTM6lB1uH7KIQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": ">=0.11 <=15" + } + }, + "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==", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-ansi/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "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": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "dependencies": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "node_modules/html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/html2canvas": { + "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-rc.7.tgz", + "integrity": "sha512-yvPNZGejB2KOyKleZspjK/NruXVQuowu8NnV2HYG7gW7ytzl+umffbtUI62v2dCHQLDdsK6HIDtyJZ0W3neerA==", + "dependencies": { + "css-line-break": "1.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "dependencies": { + "ms": "^2.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "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==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "node_modules/ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "node_modules/immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-from/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/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==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/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==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/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==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/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==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": 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/inquirer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/inquirer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/inquirer/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dependencies": { + "call-bind": "^1.0.0" + }, + "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": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "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==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "node_modules/is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "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==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "dependencies": { + "symbol-observable": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-observable/node_modules/symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "dependencies": { + "is-unc-path": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dependencies": { + "has-symbols": "^1.0.1" + }, + "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": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dev": true, + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "dev": true, + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "dependencies": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" + } + }, + "node_modules/jasmine-core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", + "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", + "dev": true + }, + "node_modules/jasmine-spec-reporter": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", + "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", + "dev": true, + "dependencies": { + "colors": "1.4.0" + } + }, + "node_modules/jasmine/node_modules/jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + }, + "node_modules/jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true, + "engines": { + "node": ">= 6.9.x" + } + }, + "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==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jquery": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "peer": true + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json-to-pretty-yaml": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz", + "integrity": "sha1-9M0L0KXo/h3yWq9boRiwmf2ZLVs=", + "dev": true, + "dependencies": { + "remedial": "^1.0.7", + "remove-trailing-spaces": "^1.0.6" + }, + "engines": { + "node": ">= 0.2.0" + } + }, + "node_modules/json2module": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/json2module/-/json2module-0.0.3.tgz", + "integrity": "sha1-APtfSpt638PwZHwpyxe80Zeb6bI=", + "dependencies": { + "rw": "^1.3.2" + }, + "bin": { + "json2module": "bin/json2module" + } + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dev": true, + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=4", + "npm": ">=1.4.28" + } + }, + "node_modules/jsonwebtoken/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/jspdf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.3.1.tgz", + "integrity": "sha512-1vp0USP1mQi1h7NKpwxjFgQkJ5ncZvtH858aLpycUc/M+r/RpWJT8PixAU7Cw/3fPd4fpC8eB/Bj42LnsR21YQ==", + "dependencies": { + "atob": "^2.1.2", + "btoa": "^1.2.1", + "fflate": "^0.4.8" + }, + "optionalDependencies": { + "canvg": "^3.0.6", + "core-js": "^3.6.0", + "dompurify": "^2.2.0", + "html2canvas": "^1.0.0-rc.5" + } + }, + "node_modules/jspdf/node_modules/fflate": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz", + "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jsrsasign-reduced": { + "version": "8.0.15", + "resolved": "https://registry.npmjs.org/jsrsasign-reduced/-/jsrsasign-reduced-8.0.15.tgz", + "integrity": "sha512-Ig4W69nXCIUedzOSk3nqJWUr2DmSDENYfsmCqVK33GPETtPcjwREGQc92hV5jcJ6zavMvGD4tjhZ+T7JIiaSLA==" + }, + "node_modules/jszip": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz", + "integrity": "sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/jszip/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/karma": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.1.2.tgz", + "integrity": "sha512-mKbxgsJrt3UHBPdKfCxC2eg3lpqyt6hQRFhNWJ2sk0wUnbnLPEiCpgIgiycuLSra0vC6TaK9OPJiMGATGzgH/A==", + "dev": true, + "dependencies": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.4.2", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.19", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^3.1.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "^0.7.23", + "yargs": "^16.1.1" + }, + "bin": { + "karma": "bin/karma" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "dependencies": { + "which": "^1.2.1" + } + }, + "node_modules/karma-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", + "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.1", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/karma-jasmine": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "dependencies": { + "jasmine-core": "^3.6.0" + }, + "engines": { + "node": ">= 10" + }, + "peerDependencies": { + "karma": "*" + } + }, + "node_modules/karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true, + "peerDependencies": { + "jasmine-core": ">=3.5", + "karma": ">=0.9", + "karma-jasmine": ">=1.1" + } + }, + "node_modules/karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "dependencies": { + "source-map-support": "^0.5.5" + } + }, + "node_modules/karma/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/karma/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "dependencies": { + "package-json": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.1.tgz", + "integrity": "sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^1.10.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-7.3.0.tgz", + "integrity": "sha512-Mi8915g7NMaLlgi77mgTTQvK022xKRQBIVDSyfl3ErTuBhmZBQab0mjeJjNNqGbdR+qrfTleKXqbGI4uEFavxg==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/less-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/less/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==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/license-webpack-plugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.11.tgz", + "integrity": "sha512-0iVGoX5vx0WDy8dmwTTpOOMYiGqILyUbDeVMFH52AjgBlS58lHwOlFMSoqg5nY8Kxl6+FRKyUZY/UdlQaOyqDw==", + "dev": true, + "dependencies": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + } + }, + "node_modules/license-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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/license-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==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/linebreak": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.0.2.tgz", + "integrity": "sha512-bJwSRsJeAmaZYnkcwl5sCQNfSDAhBuXxb6L27tb+qkBRtUQSSTUa5bcgCPD6hFEkRNlpWHfK7nFMmcANU7ZP1w==", + "dependencies": { + "base64-js": "0.0.8", + "brfs": "^2.0.2", + "unicode-trie": "^1.0.0" + } + }, + "node_modules/linebreak/node_modules/base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "dev": true, + "dependencies": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "listr": "^0.14.2" + } + }, + "node_modules/listr-update-renderer/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "dependencies": { + "chalk": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr/node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/listr/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "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==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", + "dev": true + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", + "dev": true + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", + "dev": true + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": 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/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/log-symbols/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update/node_modules/wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "dependencies": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lower-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", + "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.4" + } + }, + "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==", + "dev": true, + "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.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", + "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "dev": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/make-fetch-happen/node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "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==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/memory-fs/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/memory-fs/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "dev": true, + "dependencies": { + "mime-db": "1.46.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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.5.tgz", + "integrity": "sha512-tvmzcwqJJXau4OQE5vT72pRT18o2zF+tQJp8CWchqvfQnTlflkzS+dANYcRdyPRWUWRkfmeNTKltx0NZI/b5dQ==", + "dev": true, + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/mini-css-extract-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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mini-css-extract-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==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "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==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", + "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "dependencies": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/move-concurrently/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, + "node_modules/nanoid": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", + "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/needle": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", + "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true, + "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==", + "dev": true + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node_modules/ngx-cookie-service": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/ngx-cookie-service/-/ngx-cookie-service-11.0.2.tgz", + "integrity": "sha512-nsjzdcjK+gNAweE/DDdnOyHo04jlxTeMXOL/oJNp8MHtOTvCXnOtIFYgq4Sb2JU6UXTovO9tHEMIf9TxjlsdgQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "^11.0.2", + "@angular/core": "^11.0.2" + } + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "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==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/node-libs-browser/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/node-libs-browser/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "dev": true + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "dependencies": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "dependencies": { + "semver": "^7.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "node_modules/npm-package-arg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz", + "integrity": "sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==", + "dev": true, + "dependencies": { + "hosted-git-info": "^3.0.6", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-packlist": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.4.tgz", + "integrity": "sha512-Qzg2pvXC9U4I4fLnUrBmcIT4x0woLtUgxUi9eC+Zrcv1Xx5eamytGAfbDWQ67j7xOcQ2VW1I3su9smVTIdu7Hw==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-pick-manifest": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", + "dev": true, + "dependencies": { + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + } + }, + "node_modules/npm-registry-fetch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", + "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", + "dev": true, + "dependencies": { + "@npmcli/ci-detect": "^1.0.0", + "lru-cache": "^6.0.0", + "make-fetch-happen": "^8.0.9", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "dependencies": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "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-path": { + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz", + "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==", + "dev": true, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + }, + "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==", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "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==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.0.tgz", + "integrity": "sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opn/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": 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/ora/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/ora/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/ora/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "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==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/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==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-retry/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "dependencies": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/package-json/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/pacote": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.2.4.tgz", + "integrity": "sha512-GfTeVQGJ6WyBQbQD4t3ocHbyOmTQLmWjkCKSZPmKiGFKYKNUaM5U2gbLzUW8WG1XmS9yQFnsTFA0k3o1+q4klQ==", + "dev": true, + "dependencies": { + "@npmcli/git": "^2.0.1", + "@npmcli/installed-package-contents": "^1.0.5", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^1.3.0", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^2.1.4", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^9.0.0", + "promise-retry": "^1.1.1", + "read-package-json-fast": "^1.1.3", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.1.0" + }, + "bin": { + "pacote": "lib/bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parallel-transform/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/parallel-transform/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module/node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "node_modules/parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "dependencies": { + "parse5": "^6.0.1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "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==", + "dev": true, + "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": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/pdfkit": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.11.0.tgz", + "integrity": "sha512-1s9gaumXkYxcVF1iRtSmLiISF2r4nHtsTgpwXiK8Swe+xwk/1pm8FJjYqN7L3x13NsWnGyUFntWcO8vfqq+wwA==", + "dependencies": { + "crypto-js": "^3.1.9-1", + "fontkit": "^1.8.0", + "linebreak": "^1.0.2", + "png-js": "^1.0.0" + } + }, + "node_modules/pdfmake": { + "version": "0.1.70", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.1.70.tgz", + "integrity": "sha512-xPhkblaQ71U97qhRTPj/1HknAHHFZ3cPRmRdrqEWD2xXBcEjEM3Yw0MIjML8DRy9Dt9n6QRjHVf662f0eLtd7Q==", + "dependencies": { + "iconv-lite": "^0.6.2", + "linebreak": "^1.0.2", + "pdfkit": "^0.11.0", + "svg-to-pdfkit": "^0.1.8", + "xmldoc": "^1.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pdfmake/node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==" + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "dependencies": { + "ts-pnp": "^1.1.6" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/polylabel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/polylabel/-/polylabel-1.1.0.tgz", + "integrity": "sha512-bxaGcA40sL3d6M4hH72Z4NdLqxpXRsCFk8AITYg6x1rn1Ei3izf00UMLklerBZTO49aPA3CYrIwVulx2Bce2pA==", + "dependencies": { + "tinyqueue": "^2.0.3" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.4.tgz", + "integrity": "sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg==", + "dev": true, + "dependencies": { + "colorette": "^1.2.1", + "nanoid": "^3.1.20", + "source-map": "^0.6.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/postcss-calc/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-calc/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-calc/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-colormin/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-colormin/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-colormin/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-convert-values/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-convert-values/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-comments/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-discard-comments/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-discard-comments/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-discard-duplicates/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-discard-duplicates/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-discard-empty/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-discard-empty/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-discard-overridden/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-discard-overridden/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-import": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.0.tgz", + "integrity": "sha512-gFDDzXhqr9ELmnLHgCC3TbGfA6Dm/YMb/UN8/f7Uuq4fL7VTk2vOIj6hwINEwbokEmp123bLD7a5m+E+KIetRg==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-loader": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.2.0.tgz", + "integrity": "sha512-mqgScxHqbiz1yxbnNcPdKYo/6aVt+XExURmEbQlviFVWogDbM4AJ0A/B+ZBpYsJrTRxKw7HyRazg9x0Q9SWwLA==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/postcss-loader/node_modules/cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/postcss-loader/node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/postcss-loader/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==", + "dev": true, + "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/postcss-loader/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==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-merge-longhand/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-merge-rules/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-font-values/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-gradients/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-minify-params/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-minify-params/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-minify-selectors/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "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.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-charset/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-charset/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-charset/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-display-values/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-positions/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-repeat-style/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "dependencies": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-string/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-timing-functions/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-unicode/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-url/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-normalize-whitespace/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-ordered-values/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-initial/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-reduce-initial/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-reduce-initial/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "node_modules/postcss-reduce-transforms/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "dependencies": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-svgo/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-unique-selectors/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-unique-selectors/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-unique-selectors/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "node_modules/postcss/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "bin": { + "printj": "bin/printj.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "dependencies": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "dependencies": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "bin": { + "protractor": "bin/protractor", + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=10.13.x" + } + }, + "node_modules/protractor/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/protractor/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/protractor/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/protractor/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/protractor/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/protractor/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/protractor/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/protractor/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/protractor/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/protractor/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true, + "engines": { + "node": ">=0.9" + } + }, + "node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/queue-microtask": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", + "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "dependencies": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + }, + "bin": { + "quote-stream": "bin/cmd.js" + } + }, + "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==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "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/raw-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.2.2.tgz", + "integrity": "sha512-39DbPJjkltEzfXJXB6D8/Ir3GFOU2YbSKa2HaB/Y3nKrc/zY+0XrALpID6/13ezWyzqvOHrBbR4t4cjQuTdBVQ==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "dependencies": { + "rc": "^1.2.8" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", + "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", + "dev": true, + "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": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/regression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regression/-/regression-2.0.1.tgz", + "integrity": "sha1-jSnD6CJKEIUMNeM36FqLL6w7DIc=" + }, + "node_modules/relay-compiler": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-10.1.0.tgz", + "integrity": "sha512-HPqc3N3tNgEgUH5+lTr5lnLbgnsZMt+MRiyS0uAVNhuPY2It0X1ZJG+9qdA3L9IqKFUNwVn6zTO7RArjMZbARQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.0.0", + "@babel/generator": "^7.5.0", + "@babel/parser": "^7.0.0", + "@babel/runtime": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.3.0", + "chalk": "^4.0.0", + "fb-watchman": "^2.0.0", + "fbjs": "^3.0.0", + "glob": "^7.1.1", + "immutable": "~3.7.6", + "nullthrows": "^1.1.1", + "relay-runtime": "10.1.0", + "signedsource": "^1.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "relay-compiler": "bin/relay-compiler" + }, + "peerDependencies": { + "graphql": "^15.0.0" + } + }, + "node_modules/relay-compiler/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/relay-compiler/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/relay-compiler/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": 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/relay-compiler/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/relay-compiler/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/relay-compiler/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/relay-compiler/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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/relay-compiler/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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/relay-compiler/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/relay-compiler/node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/relay-compiler/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/relay-compiler/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/relay-runtime": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-10.1.0.tgz", + "integrity": "sha512-bxznLnQ1ST6APN/cFi7l0FpjbZVchWQjjhj9mAuJBuUqNNCh9uV+UTRhpQF7Q8ycsPp19LHTpVyGhYb0ustuRQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0" + } + }, + "node_modules/remedial": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", + "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/remove-trailing-spaces": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz", + "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/replaceall": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz", + "integrity": "sha1-gdgax663LX9cSUKt8ml6MiBojY4=", + "dev": true, + "engines": { + "node": ">= 0.8.x" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dependencies": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "dev": true, + "dependencies": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/resolve-url-loader/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/resolve-url-loader/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/resolve-url-loader/node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-url-loader/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "dependencies": { + "lowercase-keys": "^1.0.0" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/restructure": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-0.5.4.tgz", + "integrity": "sha1-9U591WNZD7NP1r9Vh2EJrsyyjeg=", + "dependencies": { + "browserify-optional": "^1.0.0" + } + }, + "node_modules/resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "dependencies": { + "through": "~2.3.4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "dependencies": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + } + }, + "node_modules/rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "node_modules/rework/node_modules/convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + }, + "node_modules/rework/node_modules/css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "node_modules/rework/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rework/node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "node_modules/rgbcolor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha1-1lBezbMEplldom+ktDMHMGd1lF0=", + "engines": { + "node": ">= 0.8.15" + } + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "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==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "2.38.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.4.tgz", + "integrity": "sha512-B0LcJhjiwKkTl79aGVF/u5KdzsH8IylVfV56Ut6c9ouWLJcUK17T83aZBetNYSnZtXf2OHD4+2PbmRW+Fp5ulg==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" + }, + "node_modules/rxjs": { + "version": "6.6.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", + "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/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/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/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "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/sass": { + "version": "1.32.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.6.tgz", + "integrity": "sha512-1bcDHDcSqeFtMr0JXI3xc/CXX6c4p0wHHivJdru8W7waM7a1WjKMm4m/Z5sY7CbVw4Whi2Chpcw6DFfSWwGLzQ==", + "dev": true, + "dependencies": { + "chokidar": ">=2.0.0 <4.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/sass-loader": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.1.1.tgz", + "integrity": "sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw==", + "dev": true, + "dependencies": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0", + "sass": "^1.3.0", + "webpack": "^4.36.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/sass-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/saucelabs/node_modules/agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/saucelabs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/saucelabs/node_modules/https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "dependencies": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "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/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "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/scope-analyzer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.1.tgz", + "integrity": "sha512-azEAihtQ9mEyZGhfgTJy3IbOWEzeOrYbg7NcYEshPKnKd+LZmC3TNd5dmDxbLBsTG/JVWmCp+vDJ03vJjeXMHg==", + "dependencies": { + "array-from": "^2.1.1", + "dash-ast": "^1.0.0", + "es6-map": "^0.1.5", + "es6-set": "^0.1.5", + "es6-symbol": "^3.1.1", + "estree-is-function": "^1.0.0", + "get-assigned-identifiers": "^1.1.0" + } + }, + "node_modules/scuid": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz", + "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==", + "dev": true + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "dependencies": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "engines": { + "node": ">= 6.9.0" + } + }, + "node_modules/selenium-webdriver/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/selenium-webdriver/node_modules/tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "dependencies": { + "semver": "^5.3.0" + } + }, + "node_modules/semver-dsl/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "dependencies": { + "semver": "^5.0.0" + } + }, + "node_modules/semver-intersect/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "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==", + "dev": true, + "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": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "node_modules/serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "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": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "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==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "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": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "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": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "node_modules/signedsource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", + "integrity": "sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=", + "dev": true + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/socket.io": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", + "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "dev": true, + "dependencies": { + "@types/cookie": "^0.4.0", + "@types/cors": "^2.8.8", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.1", + "engine.io": "~4.1.0", + "socket.io-adapter": "~2.1.0", + "socket.io-parser": "~4.0.3" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", + "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", + "dev": true + }, + "node_modules/socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "dependencies": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", + "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^3.4.0", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sockjs-client": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", + "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", + "dev": true, + "dependencies": { + "debug": "^3.2.6", + "eventsource": "^1.0.7", + "faye-websocket": "^0.11.3", + "inherits": "^2.0.4", + "json3": "^3.3.3", + "url-parse": "^1.4.7" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/socks": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.0.tgz", + "integrity": "sha512-mNmr9owlinMplev0Wd7UHFlqI4ofnBnNzFuzrm63PPaHgbkqCFe4T5LzwKmtQ/f2tX0NTpcdVLyD/FHxFBstYw==", + "dev": true, + "dependencies": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + }, + "engines": { + "node": ">= 6" + } + }, + "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==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-loader": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.1.3.tgz", + "integrity": "sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.2", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.6.1", + "whatwg-mimetype": "^2.3.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/source-map-loader/node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/source-map-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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "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==" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "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==", + "dev": true, + "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/speed-measure-webpack-plugin": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.4.2.tgz", + "integrity": "sha512-AtVzD0bnIy2/B0fWqJpJgmhcrfWFhBlduzSo0uwplr/QvB33ZNZj2NEth3NONgdnZJqicK0W0mSxnLSbsVCDbw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "webpack": "^1 || ^2 || ^3 || ^4 || ^5" + } + }, + "node_modules/speed-measure-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==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/speed-measure-webpack-plugin/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": 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/speed-measure-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==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/speed-measure-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==", + "dev": true + }, + "node_modules/speed-measure-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==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/speed-measure-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==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sponge-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", + "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "node_modules/sse-z": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", + "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==", + "dev": true + }, + "node_modules/ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dependencies": { + "frac": "~1.1.2" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "node_modules/stackblur-canvas": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.5.0.tgz", + "integrity": "sha512-EeNzTVfj+1In7aSLPKDD03F/ly4RxEuF/EX0YcOG0cKoPXs+SLZxDawQbexQDBzwROs4VKLWTOaZQlZkGBFEIQ==", + "engines": { + "node": ">=0.1.14" + } + }, + "node_modules/static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "dependencies": { + "escodegen": "^1.11.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/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-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-module": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.4.tgz", + "integrity": "sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==", + "dependencies": { + "acorn-node": "^1.3.0", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "^1.11.1", + "has": "^1.0.1", + "magic-string": "0.25.1", + "merge-source-map": "1.0.4", + "object-inspect": "^1.6.0", + "readable-stream": "~2.3.3", + "scope-analyzer": "^2.0.1", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.5", + "through2": "~2.0.3" + } + }, + "node_modules/static-module/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-module/node_modules/magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "dependencies": { + "sourcemap-codec": "^1.4.1" + } + }, + "node_modules/static-module/node_modules/merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/static-module/node_modules/merge-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-module/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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/static-module/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-module/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/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/stream-browserify/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/stream-http/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "node_modules/streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "dependencies": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/streamroller/node_modules/date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/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==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-env-interpolation": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz", + "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz", + "integrity": "sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "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/style-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylehacks/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylehacks/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "dependencies": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "bin": { + "stylus": "bin/stylus" + }, + "engines": { + "node": "*" + } + }, + "node_modules/stylus-loader": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-4.3.3.tgz", + "integrity": "sha512-PpWB5PnCXUzW4WMYhCvNzAHJBjIBPMXwsdfkkKuA9W7k8OQFMl/19/AQvaWsxz2IptxUlCseyJ6TY/eEKJ4+UQ==", + "dev": true, + "dependencies": { + "fast-glob": "^3.2.4", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "stylus": ">=0.52.4", + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/stylus-loader/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/stylus/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/stylus/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/stylus/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "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==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svg-pathdata": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-5.0.5.tgz", + "integrity": "sha512-TAAvLNSE3fEhyl/Da19JWfMAdhSXTYeviXsLSoDT1UM76ADj5ndwAPX1FKQEgB/gFMPavOy6tOqfalXKUiXrow==", + "optional": true, + "engines": { + "node": ">=6.9.5" + } + }, + "node_modules/svg-to-pdfkit": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/svg-to-pdfkit/-/svg-to-pdfkit-0.1.8.tgz", + "integrity": "sha512-QItiGZBy5TstGy+q8mjQTMGRlDDOARXLxH+sgVm1n/LYeo0zFcQlcCh8m4zi8QxctrxB9Kue/lStc/RD5iLadQ==", + "dependencies": { + "pdfkit": ">=0.8.1" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "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/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/swap-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", + "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/symbol-observable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-3.0.0.tgz", + "integrity": "sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/sync-fetch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz", + "integrity": "sha512-dJp4qg+x4JwSEW1HibAuMi0IIrBI3wuQr2GimmqB7OXR50wmwzfdusG+p39R9w3R6aFtZ2mzvxvWKQ3Bd/vx3g==", + "dev": true, + "dependencies": { + "buffer": "^5.7.0", + "node-fetch": "^2.6.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tape": { + "version": "4.13.3", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", + "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", + "dependencies": { + "deep-equal": "~1.1.1", + "defined": "~1.0.0", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.6", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.0.5", + "minimist": "~1.2.5", + "object-inspect": "~1.7.0", + "resolve": "~1.17.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.2.1", + "through": "~2.3.8" + }, + "bin": { + "tape": "bin/tape" + } + }, + "node_modules/tape/node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tape/node_modules/object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tape/node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tar": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/terser": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", + "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "dev": true, + "dependencies": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.6", + "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-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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser-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==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "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/through2/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/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "node_modules/tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, + "node_modules/tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" + }, + "node_modules/title-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "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": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/ts-log": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.3.tgz", + "integrity": "sha512-XvB+OdKSJ708Dmf9ore4Uf/q62AYDTzFcAdxc8KNML1mmAWywRFVt/dn1KYJH8Agt5UJNujfM3znU5PxgAzA2w==", + "dev": true + }, + "node_modules/ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "dependencies": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + }, + "peerDependencies": { + "typescript": ">=2.0" + } + }, + "node_modules/ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + }, + "node_modules/tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" + } + }, + "node_modules/tslint/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/tslint/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/tslint/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + } + }, + "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==", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "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==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/typescript": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", + "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.24", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.24.tgz", + "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/uglify-js/node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js/node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/uglify-js/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js/node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", + "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.0", + "has-symbols": "^1.0.0", + "which-boxed-primitive": "^1.0.1" + } + }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-properties": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.3.1.tgz", + "integrity": "sha512-nIV3Tf3LcUEZttY/2g4ZJtGXhWwSkuLL+rCu0DIAMbjyVPj+8j5gNVz4T/sVbnQybIsd5SFGkPKg/756OY6jlA==", + "dependencies": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + } + }, + "node_modules/unicode-properties/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "node_modules/unicode-properties/node_modules/unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-trie": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-1.0.0.tgz", + "integrity": "sha512-v5raLKsobbFbWLMoX9+bChts/VhPPj3XpkNr/HbqkirXR1DPk8eo9IYKyvk0MQZFkaoRsFj2Rmaqgi2rfAZYtA==", + "dependencies": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + }, + "node_modules/unicode-trie/node_modules/pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + } + }, + "node_modules/universal-analytics/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=", + "dev": true, + "dependencies": { + "normalize-path": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unixify/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "dependencies": { + "prepend-http": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "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==", + "dev": true, + "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/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "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==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", + "dev": true + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/venn.js": { + "version": "0.2.20", + "resolved": "https://registry.npmjs.org/venn.js/-/venn.js-0.2.20.tgz", + "integrity": "sha512-bb5SYq/wamY9fvcuErb9a0FJkgIFHJjkLZWonQ+DoKKuDX3WPH2B4ouI1ce4K2iejBklQy6r1ly8nOGIyOCO6w==", + "dependencies": { + "d3-selection": "^1.0.2", + "d3-transition": "^1.0.1", + "fmin": "0.0.2" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "optional": true, + "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/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/watchpack-chokidar2/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==", + "dev": true, + "optional": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.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==", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "dependencies": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "dev": true, + "dependencies": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "bin": { + "webdriver-manager": "bin/webdriver-manager" + }, + "engines": { + "node": ">=6.9.x" + } + }, + "node_modules/webdriver-manager/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webdriver-manager/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webdriver-manager/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webdriver-manager/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/webdriver-manager/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webdriver-manager/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/webdriver-manager/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webdriver-manager/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/webpack": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + }, + "webpack-command": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/del/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/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==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/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==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/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==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/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==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/webpack-dev-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/webpack-dev-server/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-log/node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-log/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/webpack-merge": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", + "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-subresource-integrity": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz", + "integrity": "sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw==", + "dev": true, + "dependencies": { + "webpack-sources": "^1.3.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "html-webpack-plugin": ">= 2.21.0 < 5", + "webpack": ">= 1.12.11 < 6" + }, + "peerDependenciesMeta": { + "html-webpack-plugin": { + "optional": true + } + } + }, + "node_modules/webpack-subresource-integrity/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-subresource-integrity/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==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/webpack/node_modules/enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/webpack/node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/webpack/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/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==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/webpack/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/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==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/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==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/webpack/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/webpack/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==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack/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==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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/webpack/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/webpack/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==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/webpack/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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/webpack/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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/webpack/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack/node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/webpack/node_modules/terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/webpack/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/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==", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack/node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "node_modules/webpack/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/what-input": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/what-input/-/what-input-5.2.10.tgz", + "integrity": "sha512-7AQoIMGq7uU8esmKniOtZG3A+pzlwgeyFpkS3f/yzRbxknSL68tvn5gjE6bZ4OMFxCPjpaBd2udUTqlZ0HwrXQ==", + "peer": true + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "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-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "dependencies": { + "string-width": "^1.0.2 || 2" + } + }, + "node_modules/wide-align/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wide-align/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/worker-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz", + "integrity": "sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0" + }, + "peerDependencies": { + "webpack": ">= 4" + } + }, + "node_modules/worker-plugin/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/worker-plugin/node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.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==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/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==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/ws": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", + "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xlsx": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.9.tgz", + "integrity": "sha512-gxi1I3EasYvgCX1vN9pGyq920Ron4NO8PNfhuoA3Hpq6Y8f0ECXiy4OLrK4QZBnj1jx3QD+8Fq5YZ/3mPZ5iXw==", + "dependencies": { + "adler-32": "~1.2.0", + "cfb": "^1.1.4", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "fflate": "^0.3.8", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/xlsx/node_modules/commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmldoc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", + "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", + "dependencies": { + "sax": "^1.2.1" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "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.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zone.js": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", + "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==", + "dependencies": { + "tslib": "^2.0.0" + } + } + }, + "dependencies": { + "@amcharts/amcharts4": { + "version": "4.10.16", + "resolved": "https://registry.npmjs.org/@amcharts/amcharts4/-/amcharts4-4.10.16.tgz", + "integrity": "sha512-RCXQ/7g6DXTQ2owEgDWojVD1FSe+6oiKeNWNxC9+miDNgX2OU/y2g8rDo65OXf5/7ZhD5uvu7msh/Ma4vw9EtA==", + "requires": { + "@babel/runtime": "^7.6.3", + "core-js": "^3.0.0", + "d3-force": "^2.0.1", + "d3-geo": "^2.0.1", + "d3-geo-projection": "^3.0.0", + "pdfmake": "^0.1.36", + "polylabel": "^1.0.2", + "raf": "^3.4.1", + "regression": "^2.0.1", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "tslib": "^2.0.1", + "venn.js": "^0.2.20", + "xlsx": "^0.16.4" + } + }, + "@amcharts/amcharts4-fonts": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@amcharts/amcharts4-fonts/-/amcharts4-fonts-4.0.1.tgz", + "integrity": "sha512-IUpBxtgzrScWDMoA2Ma4NIV9Uhd6VxJu3vn+hF5ObdTXAiwzj6gnVawEhrh8zojWumVIb5IZ0EvuCWRjEIWhIg==" + }, + "@angular-devkit/architect": { + "version": "0.1102.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.5.tgz", + "integrity": "sha512-lVc6NmEAZZPzvc18GzMFLoxqKKvPlNOg4vEtFsFldZmrydLJJGFi4KAs2WaJd8qVR1XuY4el841cjDQAJSq6sQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.2.5", + "rxjs": "6.6.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/build-angular": { + "version": "0.1102.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1102.5.tgz", + "integrity": "sha512-iAq/KbRq6kuA17rQZ67/0zQHEzpC9RzvtMZQ3wiiFsOmW5AIV5scjP7e6dn+F6vXZA44X4gCH5AUUkOLXyEtfg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1102.5", + "@angular-devkit/build-optimizer": "0.1102.5", + "@angular-devkit/build-webpack": "0.1102.5", + "@angular-devkit/core": "11.2.5", + "@babel/core": "7.12.10", + "@babel/generator": "7.12.11", + "@babel/plugin-transform-async-to-generator": "7.12.1", + "@babel/plugin-transform-runtime": "7.12.10", + "@babel/preset-env": "7.12.11", + "@babel/runtime": "7.12.5", + "@babel/template": "7.12.7", + "@discoveryjs/json-ext": "0.5.2", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "11.2.5", + "ansi-colors": "4.1.1", + "autoprefixer": "10.2.4", + "babel-loader": "8.2.2", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.2", + "copy-webpack-plugin": "6.3.2", + "core-js": "3.8.3", + "critters": "0.0.7", + "css-loader": "5.0.1", + "cssnano": "4.1.10", + "file-loader": "6.2.0", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "https-proxy-agent": "5.0.0", + "inquirer": "7.3.3", + "jest-worker": "26.6.2", + "karma-source-map-support": "1.4.0", + "less": "4.1.1", + "less-loader": "7.3.0", + "license-webpack-plugin": "2.3.11", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "1.3.5", + "minimatch": "3.0.4", + "open": "7.4.0", + "ora": "5.3.0", + "parse5-html-rewriting-stream": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "8.2.4", + "postcss-import": "14.0.0", + "postcss-loader": "4.2.0", + "raw-loader": "4.0.2", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.38.4", + "rxjs": "6.6.3", + "sass": "1.32.6", + "sass-loader": "10.1.1", + "semver": "7.3.4", + "source-map": "0.7.3", + "source-map-loader": "1.1.3", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.4.2", + "style-loader": "2.0.0", + "stylus": "0.54.8", + "stylus-loader": "4.3.3", + "terser": "5.5.1", + "terser-webpack-plugin": "4.2.3", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "webpack": "4.44.2", + "webpack-dev-middleware": "3.7.2", + "webpack-dev-server": "3.11.2", + "webpack-merge": "5.7.3", + "webpack-sources": "2.2.0", + "webpack-subresource-integrity": "1.5.2", + "worker-plugin": "5.0.0" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.1102.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1102.5.tgz", + "integrity": "sha512-ujTwrevgMRNyWir4IdnJEdDRkVSLqugRpL6cU9OeqGn6Bu+zEzZQokLkMZvbw00eEKlf5Siej4hEeF1Hnx+LUA==", + "dev": true, + "requires": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.1.0", + "typescript": "4.1.5", + "webpack-sources": "2.2.0" + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1102.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1102.5.tgz", + "integrity": "sha512-VMsi+mFwgPUQi7eEc2oKcf7X0xD0R1xfoguLS/+HGy3sfh+b7oJy3BU4+TRzDPBtGj6vWvENK2rwHFN3cBWvxA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1102.5", + "@angular-devkit/core": "11.2.5", + "rxjs": "6.6.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/core": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.5.tgz", + "integrity": "sha512-DRFvEHRKoC+hTwcOAJqLe6UQa+bpXc/1IGCMHWEbuply0KIFIGQOlmaYwFZKixz3HdFZlmoCMcAVkAXvyaWVsQ==", + "dev": true, + "requires": { + "ajv": "6.12.6", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.6.3", + "source-map": "0.7.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular-devkit/schematics": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.5.tgz", + "integrity": "sha512-7RoWgpMvhljPhW9CMz1EtqkwNnGpnsPyy0N29ClHPUq+o8wLR0hvbLBDz1fKSF7j1AwRccaQSNTj8KWsjzQJLQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.2.5", + "ora": "5.3.0", + "rxjs": "6.6.3" + }, + "dependencies": { + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@angular/animations": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-11.2.6.tgz", + "integrity": "sha512-fci034QakkoIrFeY/uOmDvf6AupZ7ziU1FlBMs/wn4HOqwsPCofpawvFQnfj5nez1+KM5JOJ1VHmZKJupkWfgw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/cdk": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-11.2.5.tgz", + "integrity": "sha512-ugalSDLME5E9JlxcRR8RGlOYlaV6rIzxOVQrGRBzY2tdhMT4Ng+BFtCkq1K88AU1sTLHq54xg9Xkfn7b5W2kiA==", + "requires": { + "parse5": "^5.0.0", + "tslib": "^2.0.0" + }, + "dependencies": { + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true + } + } + }, + "@angular/cli": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-11.2.5.tgz", + "integrity": "sha512-GIwK8l6wtg/++8aDYW++LSf7v1uqDtB6so2rPjNlOm7oYk5iqM73KaorQb/1A52oxWE3IRSJLNQaSyUlWvHvSA==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1102.5", + "@angular-devkit/core": "11.2.5", + "@angular-devkit/schematics": "11.2.5", + "@schematics/angular": "11.2.5", + "@schematics/update": "0.1102.5", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.1", + "ini": "2.0.0", + "inquirer": "7.3.3", + "jsonc-parser": "3.0.0", + "npm-package-arg": "8.1.0", + "npm-pick-manifest": "6.1.0", + "open": "7.4.0", + "ora": "5.3.0", + "pacote": "11.2.4", + "resolve": "1.19.0", + "rimraf": "3.0.2", + "semver": "7.3.4", + "symbol-observable": "3.0.0", + "universal-analytics": "0.4.23", + "uuid": "8.3.2" + } + }, + "@angular/common": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-11.2.6.tgz", + "integrity": "sha512-q1yR6bktd5p987gLEKiFY4CrHcmBxks9R6GcdgzGneQsucDtGESzEKdcJ0uaMXE+9teS+fQy5GvXel6DlA/J+w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-11.2.6.tgz", + "integrity": "sha512-3ijsCxnCLU1V1hy4UMf9qtMz5LR+wCdVFDqktEQccN9YEkN0cNtOc8Nu9EV9/mc2tqd1Q4xSBpb2o2mvpy7AhQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler-cli": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-11.2.6.tgz", + "integrity": "sha512-1OC8UkySaLzaw3aSrm8A6SA88CxQAdA4ffaOhBLE/Ee6CxpneVxn3ORlnccqnS8zWyEpschbootPJV56U3Azeg==", + "dev": true, + "requires": { + "@babel/core": "^7.8.6", + "@babel/types": "^7.8.6", + "canonical-path": "1.0.0", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.7.2", + "fs-extra": "4.0.2", + "magic-string": "^0.25.0", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "semver": "^6.3.0", + "source-map": "^0.6.1", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.0.0", + "yargs": "^16.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@angular/core": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-11.2.6.tgz", + "integrity": "sha512-lS5JOQ/Y9gbk5WiMnCp5Zyz2pRIoZ+IWLOXHU5rkQeXy0zE3eMJhw0FfpEK+X5CeSNl2EPVSPLT0MtDtbNPodg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/forms": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-11.2.6.tgz", + "integrity": "sha512-0xxayXCNc8lPQhDj5q/hAcG55cmDXPSBn2cxX4V+uDSGwKU1+h2CQID6gJdBJBh5wOaeMe6h8dK2s1pRgok66A==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/material": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-11.2.5.tgz", + "integrity": "sha512-zdzAexDl0WQ2NhRXpa6CKzIvenozLcLl0kmAJBSoUYclES9B+t86tPdWW5CKl4zJOHDM2ZnxhzkYGEffS9Qvug==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-11.2.6.tgz", + "integrity": "sha512-xnYpfoqWyQOUngfbHefsZMyelCSAaxpopu/WYP0gpbYh9qJiVhsN9s6zRMqOIPueq9lmvlEuGBMgaJjeD6Ei7Q==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.2.6.tgz", + "integrity": "sha512-B56b8yPW3vAmPe4VONiBYEMZ6B1i5CUkJvit8qWWK3y7t5XrYOihIiGC0UqEDaw/uAg72GXjixspcxZWan5e9w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/router": { + "version": "11.2.6", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-11.2.6.tgz", + "integrity": "sha512-n/3Sp36slXzRXUcUO9nVs3CkgFxa6U9A8GENeyxq9XQtcE912jOP4dzjDi3hlaNKbX9ijOyEh505KpqmiSYATg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@ardatan/aggregate-error": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz", + "integrity": "sha512-vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==", + "dev": true, + "requires": { + "tslib": "~2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/compat-data": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.11.tgz", + "integrity": "sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg==", + "dev": true + }, + "@babel/core": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", + "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", + "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", + "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + } + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "dev": true, + "requires": { + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "dev": true, + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-transforms": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", + "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", + "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + } + } + }, + "@babel/helpers": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "dev": true, + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + } + } + }, + "@babel/highlight": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.11.tgz", + "integrity": "sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", + "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz", + "integrity": "sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", + "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@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==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz", + "integrity": "sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-flow": "^7.12.13" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", + "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz", + "integrity": "sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.13.12" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz", + "integrity": "sha512-xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "semver": "^5.5.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/preset-env": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.11.tgz", + "integrity": "sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.7", + "@babel/helper-compilation-targets": "^7.12.5", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.11", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.7", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.11", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.7", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.10", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.11", + "core-js-compat": "^3.8.0", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.13.10.tgz", + "integrity": "sha512-x/XYVQ1h684pp1mJwOV4CyvqZXqbc8CMsMGUnAbuc82ZCdv1U63w5RSUzgDSXQHG5Rps/kiksH6g2D5BuaKyXg==", + "optional": true, + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "@babel/generator": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "dev": true, + "requires": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@discoveryjs/json-ext": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.2.tgz", + "integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==", + "dev": true + }, + "@graphql-codegen/cli": { + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/@graphql-codegen/cli/-/cli-1.21.3.tgz", + "integrity": "sha512-jwg0mKhseg0QI4/T4IQcttTBCZgnahiTWqnYWIK+E8nrbXCE9o2hxvaYin/Kq9+5oFtxDePED56cjVs/ESRw6g==", + "dev": true, + "requires": { + "@graphql-codegen/core": "1.17.9", + "@graphql-codegen/plugin-helpers": "^1.18.4", + "@graphql-tools/apollo-engine-loader": "^6", + "@graphql-tools/code-file-loader": "^6", + "@graphql-tools/git-loader": "^6", + "@graphql-tools/github-loader": "^6", + "@graphql-tools/graphql-file-loader": "^6", + "@graphql-tools/json-file-loader": "^6", + "@graphql-tools/load": "^6", + "@graphql-tools/prisma-loader": "^6", + "@graphql-tools/url-loader": "^6", + "@graphql-tools/utils": "^7.0.0", + "ansi-escapes": "^4.3.1", + "chalk": "^4.1.0", + "change-case-all": "1.0.12", + "chokidar": "^3.4.3", + "common-tags": "^1.8.0", + "cosmiconfig": "^7.0.0", + "debounce": "^1.2.0", + "dependency-graph": "^0.11.0", + "detect-indent": "^6.0.0", + "glob": "^7.1.6", + "graphql-config": "^3.2.0", + "indent-string": "^4.0.0", + "inquirer": "^7.3.3", + "is-glob": "^4.0.1", + "json-to-pretty-yaml": "^1.2.2", + "latest-version": "5.1.0", + "listr": "^0.14.3", + "listr-update-renderer": "^0.5.0", + "log-symbols": "^4.0.0", + "minimatch": "^3.0.4", + "mkdirp": "^1.0.4", + "string-env-interpolation": "^1.0.1", + "ts-log": "^2.2.3", + "tslib": "~2.1.0", + "valid-url": "^1.0.9", + "wrap-ansi": "^7.0.0", + "yaml": "^1.10.0", + "yargs": "^16.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@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" + } + }, + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@graphql-codegen/core": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@graphql-codegen/core/-/core-1.17.9.tgz", + "integrity": "sha512-7nwy+bMWqb0iYJ2DKxA9UiE16meeJ2Ch2XWS/N/ZnA0snTR+GZ20USI8z6YqP1Fuist7LvGO1MbitO2qBT8raA==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^1.18.2", + "@graphql-tools/merge": "^6", + "@graphql-tools/utils": "^6", + "tslib": "~2.0.1" + }, + "dependencies": { + "@graphql-tools/utils": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.4.tgz", + "integrity": "sha512-ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==", + "dev": true, + "requires": { + "@ardatan/aggregate-error": "0.0.6", + "camel-case": "4.1.1", + "tslib": "~2.0.1" + } + }, + "camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "dev": true, + "requires": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@graphql-codegen/plugin-helpers": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/@graphql-codegen/plugin-helpers/-/plugin-helpers-1.18.4.tgz", + "integrity": "sha512-dpfhUmn9GOS8ByoOPIN3V4Nn9HX7sl9NR7Hf26TgN6Clg7cQvkT6XjHdS2e56Q3kWrxZT1zJ1sEa67D3tj9ZtQ==", + "dev": true, + "requires": { + "@graphql-tools/utils": "^7.0.0", + "common-tags": "1.8.0", + "import-from": "3.0.0", + "lodash": "~4.17.20", + "tslib": "~2.1.0" + } + }, + "@graphql-codegen/typescript": { + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-1.21.1.tgz", + "integrity": "sha512-JF6Vsu5HSv3dAoS2ca3PFLUN0qVxotex/+BgWw/6SKhtd83MUPnzJ/RU3lACg4vuNTCWeQSeGvg8x5qrw9Go9w==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^1.18.3", + "@graphql-codegen/visitor-plugin-common": "^1.19.0", + "auto-bind": "~4.0.0", + "tslib": "~2.1.0" + } + }, + "@graphql-codegen/typescript-document-nodes": { + "version": "1.17.10", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-document-nodes/-/typescript-document-nodes-1.17.10.tgz", + "integrity": "sha512-0xKilL6J7QeBwE7lH86RkTcHRU1Z49nEMVMU0n3o9u4Yf+757GoaGhliYboVZFXHgE8n16HbNBxIO+oIN6hJAA==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^1.18.3", + "@graphql-codegen/visitor-plugin-common": "^1.19.0", + "auto-bind": "~4.0.0", + "tslib": "~2.1.0" + } + }, + "@graphql-codegen/visitor-plugin-common": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-1.19.1.tgz", + "integrity": "sha512-MJZXe5vXxV6PLOgHhQoz93gnjzJtbnVQXQKqVEcbyB9W8ImoKuTHsEf/eJ6yCL79f7X/2dnOOM84d5Osh1eaKg==", + "dev": true, + "requires": { + "@graphql-codegen/plugin-helpers": "^1.18.4", + "@graphql-tools/optimize": "^1.0.1", + "@graphql-tools/relay-operation-optimizer": "^6", + "array.prototype.flatmap": "^1.2.4", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.12", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.1.0" + }, + "dependencies": { + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true + } + } + }, + "@graphql-tools/apollo-engine-loader": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-6.2.5.tgz", + "integrity": "sha512-CE4uef6PyxtSG+7OnLklIr2BZZDgjO89ZXK47EKdY7jQy/BQD/9o+8SxPsgiBc+2NsDJH2I6P/nqoaJMOEat6g==", + "dev": true, + "requires": { + "@graphql-tools/utils": "^7.0.0", + "cross-fetch": "3.0.6", + "tslib": "~2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@graphql-tools/batch-execute": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-7.0.0.tgz", + "integrity": "sha512-+ywPfK6N2Ddna6oOa5Qb1Mv7EA8LOwRNOAPP9dL37FEhksJM9pYqPSceUcqMqg7S9b0+Cgr78s408rgvurV3/Q==", + "dev": true, + "requires": { + "@graphql-tools/utils": "^7.0.0", + "dataloader": "2.0.0", + "is-promise": "4.0.0", + "tslib": "~2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@graphql-tools/code-file-loader": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/code-file-loader/-/code-file-loader-6.3.1.tgz", + "integrity": "sha512-ZJimcm2ig+avgsEOWWVvAaxZrXXhiiSZyYYOJi0hk9wh5BxZcLUNKkTp6EFnZE/jmGUwuos3pIjUD3Hwi3Bwhg==", + "dev": true, + "requires": { + "@graphql-tools/graphql-tag-pluck": "^6.5.1", + "@graphql-tools/utils": "^7.0.0", + "tslib": "~2.1.0" + } + }, + "@graphql-tools/delegate": { + "version": "7.0.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-7.0.10.tgz", + "integrity": "sha512-6Di9ia5ohoDvrHuhj2cak1nJGhIefJmUsd3WKZcJ2nu2yZAFawWMxGvQImqv3N7iyaWKiVhrrK8Roi/JrYhdKg==", + "dev": true, + "requires": { + "@ardatan/aggregate-error": "0.0.6", + "@graphql-tools/batch-execute": "^7.0.0", + "@graphql-tools/schema": "^7.0.0", + "@graphql-tools/utils": "^7.1.6", + "dataloader": "2.0.0", + "is-promise": "4.0.0", + "tslib": "~2.1.0" + } + }, + "@graphql-tools/git-loader": { + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/git-loader/-/git-loader-6.2.6.tgz", + "integrity": "sha512-ooQTt2CaG47vEYPP3CPD+nbA0F+FYQXfzrB1Y1ABN9K3d3O2RK3g8qwslzZaI8VJQthvKwt0A95ZeE4XxteYfw==", + "dev": true, + "requires": { + "@graphql-tools/graphql-tag-pluck": "^6.2.6", + "@graphql-tools/utils": "^7.0.0", + "tslib": "~2.1.0" + } + }, + "@graphql-tools/github-loader": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/github-loader/-/github-loader-6.2.5.tgz", + "integrity": "sha512-DLuQmYeNNdPo8oWus8EePxWCfCAyUXPZ/p1PWqjrX/NGPyH2ZObdqtDAfRHztljt0F/qkBHbGHCEk2TKbRZTRw==", + "dev": true, + "requires": { + "@graphql-tools/graphql-tag-pluck": "^6.2.6", + "@graphql-tools/utils": "^7.0.0", + "cross-fetch": "3.0.6", + "tslib": "~2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@graphql-tools/graphql-file-loader": { + "version": "6.2.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.7.tgz", + "integrity": "sha512-5k2SNz0W87tDcymhEMZMkd6/vs6QawDyjQXWtqkuLTBF3vxjxPD1I4dwHoxgWPIjjANhXybvulD7E+St/7s9TQ==", + "dev": true, + "requires": { + "@graphql-tools/import": "^6.2.6", + "@graphql-tools/utils": "^7.0.0", + "tslib": "~2.1.0" + } + }, + "@graphql-tools/graphql-tag-pluck": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.5.1.tgz", + "integrity": "sha512-7qkm82iFmcpb8M6/yRgzjShtW6Qu2OlCSZp8uatA3J0eMl87TxyJoUmL3M3UMMOSundAK8GmoyNVFUrueueV5Q==", + "dev": true, + "requires": { + "@babel/parser": "7.12.16", + "@babel/traverse": "7.12.13", + "@babel/types": "7.12.13", + "@graphql-tools/utils": "^7.0.0", + "tslib": "~2.1.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "dev": true, + "requires": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "@babel/types": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", + "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.12.16", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.16.tgz", + "integrity": "sha512-c/+u9cqV6F0+4Hpq01jnJO+GLp2DdT63ppz9Xa+6cHaajM9VFzK/iDXiKK65YtpeVwu+ctfS6iqlMqRgQRzeCw==", + "dev": true + }, + "@babel/traverse": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.13.tgz", + "integrity": "sha512-3Zb4w7eE/OslI0fTp8c7b286/cQps3+vdLW3UcwC8VSJC6GbKn55aeVVu2QJNuCDoeKyptLOFrPq8WqZZBodyA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "@babel/types": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.13.tgz", + "integrity": "sha512-oKrdZTld2im1z8bDwTOQvUbxKwE+854zc16qWZQlcTqMN00pWxHQ4ZeOq0yDMnisOpRykH2/5Qqcrk/OlbAjiQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@graphql-tools/import": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.3.0.tgz", + "integrity": "sha512-zmaVhJ3UPjzJSb005Pjn2iWvH+9AYRXI4IUiTi14uPupiXppJP3s7S25Si3+DbHpFwurDF2nWRxBLiFPWudCqw==", + "dev": true, + "requires": { + "resolve-from": "5.0.0", + "tslib": "~2.1.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@graphql-tools/json-file-loader": { + "version": "6.2.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.6.tgz", + "integrity": "sha512-CnfwBSY5926zyb6fkDBHnlTblHnHI4hoBALFYXnrg0Ev4yWU8B04DZl/pBRUc459VNgO2x8/mxGIZj2hPJG1EA==", + "dev": true, + "requires": { + "@graphql-tools/utils": "^7.0.0", + "tslib": "~2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@graphql-tools/load": { + "version": "6.2.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.7.tgz", + "integrity": "sha512-b1qWjki1y/QvGtoqW3x8bcwget7xmMfLGsvGFWOB6m38tDbzVT3GlJViAC0nGPDks9OCoJzAdi5IYEkBaqH5GQ==", + "dev": true, + "requires": { + "@graphql-tools/merge": "^6.2.9", + "@graphql-tools/utils": "^7.5.0", + "globby": "11.0.2", + "import-from": "3.0.0", + "is-glob": "4.0.1", + "p-limit": "3.1.0", + "tslib": "~2.1.0", + "unixify": "1.0.0", + "valid-url": "1.0.9" + } + }, + "@graphql-tools/merge": { + "version": "6.2.10", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.10.tgz", + "integrity": "sha512-dM3n37PcslvhOAkCz7Cwk0BfoiSVKXGmCX+VMZkATbXk/0vlxUfNEpVfA5yF4IkP27F04SzFQSaNrbD0W2Rszw==", + "dev": true, + "requires": { + "@graphql-tools/schema": "^7.0.0", + "@graphql-tools/utils": "^7.5.0", + "tslib": "~2.1.0" + } + }, + "@graphql-tools/optimize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/optimize/-/optimize-1.0.1.tgz", + "integrity": "sha512-cRlUNsbErYoBtzzS6zXahXeTBZGPVlPHXCpnEZ0XiK/KY/sQL96cyzak0fM/Gk6qEI9/l32MYEICjasiBQrl5w==", + "dev": true, + "requires": { + "tslib": "~2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@graphql-tools/prisma-loader": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/prisma-loader/-/prisma-loader-6.3.0.tgz", + "integrity": "sha512-9V3W/kzsFBmUQqOsd96V4a4k7Didz66yh/IK89B1/rrvy9rYj+ULjEqR73x9BYZ+ww9FV8yP8LasWAJwWaqqJQ==", + "dev": true, + "requires": { + "@graphql-tools/url-loader": "^6.8.2", + "@graphql-tools/utils": "^7.0.0", + "@types/http-proxy-agent": "^2.0.2", + "@types/js-yaml": "^4.0.0", + "@types/json-stable-stringify": "^1.0.32", + "@types/jsonwebtoken": "^8.5.0", + "chalk": "^4.1.0", + "debug": "^4.3.1", + "dotenv": "^8.2.0", + "graphql-request": "^3.3.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "isomorphic-fetch": "^3.0.0", + "js-yaml": "^4.0.0", + "json-stable-stringify": "^1.0.1", + "jsonwebtoken": "^8.5.1", + "lodash": "^4.17.20", + "replaceall": "^0.1.6", + "scuid": "^1.1.0", + "tslib": "~2.1.0", + "yaml-ast-parser": "^0.0.43" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "js-yaml": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "@graphql-tools/relay-operation-optimizer": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.3.0.tgz", + "integrity": "sha512-Or3UgRvkY9Fq1AAx7q38oPqFmTepLz7kp6wDHKyR0ceG7AvHv5En22R12mAeISInbhff4Rpwgf6cE8zHRu6bCw==", + "dev": true, + "requires": { + "@graphql-tools/utils": "^7.1.0", + "relay-compiler": "10.1.0", + "tslib": "~2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@graphql-tools/schema": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-7.1.3.tgz", + "integrity": "sha512-ZY76hmcJlF1iyg3Im0sQ3ASRkiShjgv102vLTVcH22lEGJeCaCyyS/GF1eUHom418S60bS8Th6+autRUxfBiBg==", + "dev": true, + "requires": { + "@graphql-tools/utils": "^7.1.2", + "tslib": "~2.1.0" + } + }, + "@graphql-tools/url-loader": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.8.2.tgz", + "integrity": "sha512-YzsXSCOwlSj8UqOMhQThPzgEChgS/MonyWV7f0WKmN9gAT/f3fPaUcYhVamsH0vGbvTkfNM4JdoZO/39amRs5Q==", + "dev": true, + "requires": { + "@graphql-tools/delegate": "^7.0.1", + "@graphql-tools/utils": "^7.1.5", + "@graphql-tools/wrap": "^7.0.4", + "@types/websocket": "1.0.2", + "cross-fetch": "3.1.1", + "eventsource": "1.1.0", + "extract-files": "9.0.0", + "form-data": "4.0.0", + "graphql-upload": "^11.0.0", + "graphql-ws": "4.2.2", + "is-promise": "4.0.0", + "isomorphic-ws": "4.0.1", + "sse-z": "0.3.0", + "sync-fetch": "0.3.0", + "tslib": "~2.1.0", + "valid-url": "1.0.9", + "ws": "7.4.4" + }, + "dependencies": { + "cross-fetch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.1.tgz", + "integrity": "sha512-eIF+IHQpRzoGd/0zPrwQmHwDC90mdvjk+hcbYhKoaRrEk4GEIDqdjs/MljmdPPoHTQudbmWS+f0hZsEpFaEvWw==", + "dev": true, + "requires": { + "node-fetch": "2.6.1" + } + }, + "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==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@graphql-tools/utils": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-7.6.0.tgz", + "integrity": "sha512-YCZDDdhfb4Yhie0IH031eGdvQG8C73apDuNg6lqBNbauNw45OG/b8wi3+vuMiDnJTJN32GQUb1Gt9gxDKoRDKw==", + "dev": true, + "requires": { + "@ardatan/aggregate-error": "0.0.6", + "camel-case": "4.1.2", + "tslib": "~2.1.0" + } + }, + "@graphql-tools/wrap": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-7.0.5.tgz", + "integrity": "sha512-KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==", + "dev": true, + "requires": { + "@graphql-tools/delegate": "^7.0.7", + "@graphql-tools/schema": "^7.1.2", + "@graphql-tools/utils": "^7.2.1", + "is-promise": "4.0.0", + "tslib": "~2.0.1" + }, + "dependencies": { + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "@iarna/toml": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", + "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", + "dev": true + }, + "@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==", + "dev": true + }, + "@jsdevtools/coverage-istanbul-loader": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@jsdevtools/coverage-istanbul-loader/-/coverage-istanbul-loader-3.0.5.tgz", + "integrity": "sha512-EUCPEkaRPvmHjWAAZkWMT7JDzpw7FKB00WTISaiXsbNOd5hCHg77XLA8sLYLFDo1zepYLo2w7GstN8YBqRXZfA==", + "dev": true, + "requires": { + "convert-source-map": "^1.7.0", + "istanbul-lib-instrument": "^4.0.3", + "loader-utils": "^2.0.0", + "merge-source-map": "^1.1.0", + "schema-utils": "^2.7.0" + } + }, + "@ngtools/webpack": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-11.2.5.tgz", + "integrity": "sha512-7fhg8hvqTiTS5ESiEN4xR2qRnOVX0rhVSckMXbAFvNYTwQOuS865RiBrYCJ4CsKhGJ9P7XS5i2EIwA3/aLSivg==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.2.5", + "enhanced-resolve": "5.7.0", + "webpack-sources": "2.2.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.4", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.4", + "fastq": "^1.6.0" + } + }, + "@npmcli/ci-detect": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz", + "integrity": "sha512-oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==", + "dev": true + }, + "@npmcli/git": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.0.6.tgz", + "integrity": "sha512-a1MnTfeRPBaKbFY07fd+6HugY1WAkKJzdiJvlRub/9o5xz2F/JtPacZZapx5zRJUQFIzSL677vmTSxEcDMrDbg==", + "dev": true, + "requires": { + "@npmcli/promise-spawn": "^1.1.0", + "lru-cache": "^6.0.0", + "mkdirp": "^1.0.3", + "npm-pick-manifest": "^6.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.2", + "unique-filename": "^1.1.1", + "which": "^2.0.2" + }, + "dependencies": { + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "dev": true, + "requires": { + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "@npmcli/node-gyp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.2.tgz", + "integrity": "sha512-yrJUe6reVMpktcvagumoqD9r08fH1iRo01gn1u0zoCApa9lnZGEigVKUd2hzsCId4gdtkZZIVscLhNxMECKgRg==", + "dev": true + }, + "@npmcli/promise-spawn": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", + "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "dev": true, + "requires": { + "infer-owner": "^1.0.4" + } + }, + "@npmcli/run-script": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.4.tgz", + "integrity": "sha512-Yd9HXTtF1JGDXZw0+SOn+mWLYS0e7bHBHVC/2C8yqs4wUrs/k8rwBSinD7rfk+3WG/MFGRZKxjyoD34Pch2E/A==", + "dev": true, + "requires": { + "@npmcli/node-gyp": "^1.0.2", + "@npmcli/promise-spawn": "^1.3.2", + "infer-owner": "^1.0.4", + "node-gyp": "^7.1.0", + "read-package-json-fast": "^2.0.1" + }, + "dependencies": { + "read-package-json-fast": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.2.tgz", + "integrity": "sha512-5fyFUyO9B799foVk4n6ylcoAktG/FbE3jwRKxvwaeSrIunaoMc0u81dzXxjeAFKOce7O5KncdfwpGvvs6r5PsQ==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + } + } + }, + "@samverschueren/stream-to-observable": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz", + "integrity": "sha512-c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==", + "dev": true, + "requires": { + "any-observable": "^0.3.0" + } + }, + "@schematics/angular": { + "version": "11.2.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.5.tgz", + "integrity": "sha512-pjaK0gZyqhzgAVxMKElG6cDpAvNZ3adVCTA8dhEixpH+JaQdoczl59hMn7rH75yQW0PApe+8g7HMwVK6bLRmxQ==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.2.5", + "@angular-devkit/schematics": "11.2.5", + "jsonc-parser": "3.0.0" + } + }, + "@schematics/update": { + "version": "0.1102.5", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1102.5.tgz", + "integrity": "sha512-iz9pM8mabieqQnPZjrqP5jfRFvPm81/uIg46kY3KjtDtSBi4GAF2dnFyX1dC2mG1rq+e+8zeQLvOvhdLifYlEA==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.2.5", + "@angular-devkit/schematics": "11.2.5", + "@yarnpkg/lockfile": "1.1.0", + "ini": "2.0.0", + "npm-package-arg": "^8.0.0", + "pacote": "11.2.4", + "semver": "7.3.4", + "semver-intersect": "1.4.0" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "dev": true + }, + "@types/component-emitter": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.10.tgz", + "integrity": "sha512-bsjleuRKWmGqajMerkzox19aGbscQX5rmmvvXl3wlIp5gMG1HgkiwPxsN5p070fBDKTNSPgojVbuY1+HWMbFhg==", + "dev": true + }, + "@types/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-y7mImlc/rNkvCRmg8gC3/lj87S7pTUIJ6QGjwHR9WQJcFs+ZMTOaoPrkdFA/YdbuqVEmEbb5RdhVxMkAcgOnpg==", + "dev": true + }, + "@types/cors": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.10.tgz", + "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==", + "dev": true + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/http-proxy-agent": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@types/http-proxy-agent/-/http-proxy-agent-2.0.2.tgz", + "integrity": "sha512-2S6IuBRhqUnH1/AUx9k8KWtY3Esg4eqri946MnxTG5HwehF1S5mqLln8fcyMiuQkY72p2gH3W+rIPqp5li0LyQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/jasmine": { + "version": "3.6.7", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.7.tgz", + "integrity": "sha512-8dtfiykrpe4Ysn6ONj0tOjmpDIh1vWxPk80eutSeWmyaJvAZXZ84219fS4gLrvz05eidhp7BP17WVQBaXHSyXQ==", + "dev": true + }, + "@types/js-yaml": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.0.tgz", + "integrity": "sha512-4vlpCM5KPCL5CfGmTbpjwVKbISRYhduEJvvUWsH5EB7QInhEj94XPZ3ts/9FPiLZFqYO0xoW4ZL8z2AabTGgJA==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "@types/json-stable-stringify": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.32.tgz", + "integrity": "sha512-q9Q6+eUEGwQkv4Sbst3J4PNgDOvpuVuKj79Hl/qnmBMEIPzB5QoFRUtjcgcg2xNUZyYUGXBk5wYIBKHt0A+Mxw==", + "dev": true + }, + "@types/jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-rNAPdomlIUX0i0cg2+I+Q1wOUr531zHBQ+cV/28PJ39bSPKjahatZZ2LMuhiguETkCgLVzfruw/ZvNMNkKoSzw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "12.20.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.6.tgz", + "integrity": "sha512-sRVq8d+ApGslmkE9e3i+D3gFGk7aZHAT+G4cIpIEdLJYPsWiSPwcAnJEjddLQQDqV3Ra2jOclX/Sv6YrvGYiWA==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "@types/raf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.0.tgz", + "integrity": "sha512-taW5/WYqo36N7V39oYyHP9Ipfd5pNFvGTIQsNGj86xV88YQ7GnI30/yMfKDF7Zgin0m3e+ikX88FvImnK4RjGw==", + "optional": true + }, + "@types/selenium-webdriver": { + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", + "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", + "dev": true + }, + "@types/source-list-map": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", + "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", + "dev": true + }, + "@types/webpack-sources": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", + "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/source-list-map": "*", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "@types/websocket": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.2.tgz", + "integrity": "sha512-B5m9aq7cbbD/5/jThEr33nUY8WEfVi6A2YKCTOvw5Ldy7mtsOkqRvGjnzy6g7iMMDsgu7xREuCzqATLDLQVKcQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@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==", + "dev": true + }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "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==" + }, + "adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + } + }, + "adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "agentkeepalive": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.4.tgz", + "integrity": "sha512-+V/rGa3EuU74H6wR04plBb7Ks10FbtUQgRj/FQOG7uUIEuaINI+AiqJR1k6t3SVNs7o7ZjIdus6706qqzVq8jQ==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true, + "requires": {} + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "requires": {} + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "angular-auth-oidc-client": { + "version": "11.6.4", + "resolved": "https://registry.npmjs.org/angular-auth-oidc-client/-/angular-auth-oidc-client-11.6.4.tgz", + "integrity": "sha512-5nLKNuqXe9oplmk7IYW8g7WFJ7FOseDA9m+retOaXxrjSFtWL7o0UdnskrYOqoEsWBeeqhCLRNPDBP1d8D7tRw==", + "requires": { + "common-tags": "^1.8.0", + "jsrsasign-reduced": "^8.0.15", + "tslib": "^2.0.0" + } + }, + "angular-oauth2-oidc": { + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/angular-oauth2-oidc/-/angular-oauth2-oidc-10.0.3.tgz", + "integrity": "sha512-9wC8I3e3cN6rMBOlo5JB2y3Fd2erp8pJ67t4vEVzyPbnRG6BJ4rreSOznSL9zw/2SjhC9kRV2OfFie29CUCzEg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", + "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", + "dev": true, + "requires": { + "type-fest": "^0.11.0" + } + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "any-observable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz", + "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==", + "dev": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + } + } + }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=" + }, + "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==", + "dev": true + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "array.prototype.flatmap": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz", + "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "function-bind": "^1.1.1" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-transform": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/ast-transform/-/ast-transform-0.0.0.tgz", + "integrity": "sha1-dJRAWIh9goPhidlUYAlHvJj+AGI=", + "requires": { + "escodegen": "~1.2.0", + "esprima": "~1.0.4", + "through": "~2.3.4" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + } + } + }, + "ast-types": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.7.8.tgz", + "integrity": "sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk=" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "auto-bind": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "dev": true + }, + "autoprefixer": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.2.4.tgz", + "integrity": "sha512-DCCdUQiMD+P/as8m3XkeTUkUKuuRqLGcwD0nll7wevhqoJfMRpJlkFd1+MQh1pvupjiQuip42lc/VFvfUTMSKw==", + "dev": true, + "requires": { + "browserslist": "^4.16.1", + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "fraction.js": "^4.0.13", + "normalize-range": "^0.1.2", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", + "dev": true, + "requires": { + "ast-types-flow": "0.0.7" + } + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", + "dev": true + }, + "babel-preset-fbjs": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/babel-preset-fbjs/-/babel-preset-fbjs-3.3.0.tgz", + "integrity": "sha512-7QTLTCd2gwB2qGoi5epSULMHugSVgpcVt5YAeiFO9ABLrutDQzKfGwzxgZHLpugq8qMdg/DhRZDZ5CLKxBkEbw==", + "dev": true, + "requires": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64id": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "brfs": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brfs/-/brfs-2.0.2.tgz", + "integrity": "sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ==", + "requires": { + "quote-stream": "^1.0.1", + "resolve": "^1.1.5", + "static-module": "^3.0.2", + "through2": "^2.0.0" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "brotli": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/brotli/-/brotli-1.3.2.tgz", + "integrity": "sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y=", + "requires": { + "base64-js": "^1.1.2" + } + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-optional": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-optional/-/browserify-optional-1.0.1.tgz", + "integrity": "sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk=", + "requires": { + "ast-transform": "0.0.0", + "ast-types": "^0.7.0", + "browser-resolve": "^1.8.1" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + } + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "requires": { + "node-int64": "^0.4.0" + } + }, + "btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-equal": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", + "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=" + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", + "dev": true + }, + "busboy": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz", + "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==", + "dev": true, + "requires": { + "dicer": "0.3.0" + } + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "cacache": { + "version": "15.0.5", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz", + "integrity": "sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==", + "dev": true, + "requires": { + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + } + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "requires": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001203", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001203.tgz", + "integrity": "sha512-/I9tvnzU/PHMH7wBPrfDMSuecDeUKerjCPX7D0xBbaJZPxoT9m+yYxt0zCTkcijCkjTdim3H56Zm0i5Adxch4w==", + "dev": true + }, + "canonical-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", + "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", + "dev": true + }, + "canvg": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.7.tgz", + "integrity": "sha512-4sq6iL5Q4VOXS3PL1BapiXIZItpxYyANVzsAKpTPS5oq4u3SKbGfUcbZh2gdLCQ3jWpG/y5wRkMlBBAJhXeiZA==", + "optional": true, + "requires": { + "@babel/runtime-corejs3": "^7.9.6", + "@types/raf": "^3.4.0", + "raf": "^3.4.1", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^5.0.5" + } + }, + "capital-case": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "cfb": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz", + "integrity": "sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==", + "requires": { + "adler-32": "~1.2.0", + "crc-32": "~1.2.0", + "printj": "~1.1.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "change-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "change-case-all": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/change-case-all/-/change-case-all-1.0.12.tgz", + "integrity": "sha512-zdQus7R0lkprF99lrWUC5bFj6Nog4Xt4YCEjQ/vM4vbc6b5JHFBQMxRPAjfx+HJH8WxMzH0E+lQ8yQJLgmPCBg==", + "dev": true, + "requires": { + "change-case": "^4.1.1", + "is-lower-case": "^2.0.1", + "is-upper-case": "^2.0.1", + "lower-case": "^2.0.1", + "lower-case-first": "^2.0.1", + "sponge-case": "^1.0.0", + "swap-case": "^2.0.1", + "title-case": "^3.0.2", + "upper-case": "^2.0.1", + "upper-case-first": "^2.0.1" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-dependency-plugin": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.2.tgz", + "integrity": "sha512-g38K9Cm5WRwlaH6g03B9OEz/0qRizI+2I7n+Gz+L5DxXJAPAiWQvwlYNm1V1jkdpUv95bOe/ASm2vfi/G560jQ==", + "dev": true, + "requires": {} + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "classlist.js": { + "version": "1.1.20150312", + "resolved": "https://registry.npmjs.org/classlist.js/-/classlist.js-1.1.20150312.tgz", + "integrity": "sha1-HXCEL3Ai8I2awIbOaeWyUPLFd4k=" + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dev": true, + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.6.0.tgz", + "integrity": "sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q==", + "dev": true + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "dependencies": { + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.1.tgz", + "integrity": "sha512-cOyGQgMdhnRYtW2xrJUNrNYDjEgwQ+BrE2y93Bwz3h4DJ6vJRLfupemU5N3pbYsUlBHJf0u1j1UGk+NLW4d97g==", + "dev": true, + "requires": { + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", + "dev": true + } + } + }, + "codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", + "requires": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "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==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "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==" + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "requires": { + "arity-n": "^1.0.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "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" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constant-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "contour_plot": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/contour_plot/-/contour_plot-0.0.1.tgz", + "integrity": "sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc=" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-anything": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", + "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", + "dev": true, + "requires": { + "is-what": "^3.12.0" + } + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.3.2.tgz", + "integrity": "sha512-MgJ1uouLIbDg4ST1GzqrGQyKoXY5iPqi6fghFqarijam7FQcBa/r6Rg0VkoIuzx75Xq8iAMghyOueMkWUQ5OaA==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "fast-glob": "^3.2.4", + "find-cache-dir": "^3.3.1", + "glob-parent": "^5.1.1", + "globby": "^11.0.1", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "core-js": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", + "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==" + }, + "core-js-compat": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz", + "integrity": "sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==", + "dev": true, + "requires": { + "browserslist": "^4.16.3", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-js-pure": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.9.1.tgz", + "integrity": "sha512-laz3Zx0avrw9a4QEIdmIblnVuJz8W51leY9iLThatCsFawWxC3sE4guASC78JbCin+DkwMpCdp1AVAuzL/GN7A==", + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "cosmiconfig-toml-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz", + "integrity": "sha512-H/2gurFWVi7xXvCyvsWRLCMekl4tITJcX0QEsDMpzxtuxDyM59xLatYNg4s/k9AA/HdtCYfj2su8mgA0GSDLDA==", + "dev": true, + "requires": { + "@iarna/toml": "^2.2.5" + } + }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "critters": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.7.tgz", + "integrity": "sha512-qUF2SaAWFYjNPdCcPpu68p2DnHiosia84yx5mPTlUMQjkjChR+n6sO1/I7yn2U2qNDgSPTd2SoaTIDQcUL+EwQ==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "css": "^3.0.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "pretty-bytes": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "cross-fetch": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz", + "integrity": "sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==", + "dev": true, + "requires": { + "node-fetch": "2.6.1" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "crypto-js": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz", + "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q==" + }, + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-line-break": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.1.1.tgz", + "integrity": "sha512-1feNVaM4Fyzdj4mKPIQNL2n70MmuYzAXZ1aytlROFX1JsOo070OsugwGjj7nl6jnDJWHDM8zRZswkmeYVWZJQA==", + "requires": { + "base64-arraybuffer": "^0.2.0" + }, + "dependencies": { + "base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==" + } + } + }, + "css-loader": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.0.1.tgz", + "integrity": "sha512-cXc2ti9V234cq7rJzFKhirb2L2iPy8ZjALeVJAozXYz9te3r4eqLSixNAbMDJSgJEQywqXzs8gonxaboeKqwiw==", + "dev": true, + "requires": { + "camelcase": "^6.2.0", + "cssesc": "^3.0.0", + "icss-utils": "^5.0.0", + "loader-utils": "^2.0.0", + "postcss": "^8.1.4", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "css-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", + "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", + "dev": true, + "requires": { + "css": "^2.0.0" + }, + "dependencies": { + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "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==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "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==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "X.X.X" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "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==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "d3-array": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-2.12.0.tgz", + "integrity": "sha512-T6H/qNldyD/1OlRkJbonb3u3MPhNwju8OPxYv0YSjDb/B2RUeeBEHzIpNrYiinwpmz8+am+puMrpcrDWgY9wRg==", + "requires": { + "internmap": "^1.0.0" + } + }, + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==" + }, + "d3-dispatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz", + "integrity": "sha512-S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==" + }, + "d3-ease": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", + "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==" + }, + "d3-force": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz", + "integrity": "sha512-nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==", + "requires": { + "d3-dispatch": "1 - 2", + "d3-quadtree": "1 - 2", + "d3-timer": "1 - 2" + } + }, + "d3-geo": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.1.tgz", + "integrity": "sha512-M6yzGbFRfxzNrVhxDJXzJqSLQ90q1cCyb3EWFZ1LF4eWOBYxFypw7I/NFVBNXKNqxv1bqLathhYvdJ6DC+th3A==", + "requires": { + "d3-array": ">=2.5" + } + }, + "d3-geo-projection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz", + "integrity": "sha512-1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==", + "requires": { + "commander": "2", + "d3-array": "1 - 2", + "d3-geo": "1.12.0 - 2", + "resolve": "^1.1.10" + } + }, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "requires": { + "d3-color": "1" + } + }, + "d3-quadtree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz", + "integrity": "sha512-b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==" + }, + "d3-selection": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==" + }, + "d3-timer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", + "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==" + }, + "d3-transition": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", + "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", + "requires": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + }, + "dependencies": { + "d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==" + }, + "d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==" + } + } + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", + "dev": true + }, + "dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dataloader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz", + "integrity": "sha512-YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==", + "dev": true + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", + "dev": true + }, + "debounce": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "dependency-graph": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", + "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz", + "integrity": "sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==", + "dev": true + }, + "detect-node": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.5.tgz", + "integrity": "sha512-qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==", + "dev": true + }, + "dfa": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/dfa/-/dfa-1.2.0.tgz", + "integrity": "sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==" + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "dicer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz", + "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==", + "dev": true, + "requires": { + "streamsearch": "0.1.2" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "dompurify": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.2.7.tgz", + "integrity": "sha512-jdtDffdGNY+C76jvodNTu9jt5yYj59vuTUyx+wXdzcSwAGTYZDAQkQ7Iwx9zcGrA4ixC1syU4H3RZROqRxokxg==", + "optional": true + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", + "dev": true + }, + "dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", + "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "requires": { + "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "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" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.692", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.692.tgz", + "integrity": "sha512-Ix+zDUAXWZuUzqKdhkgN5dP7ZM+IwMG4yAGFGDLpGJP/3vNEEwuHG1LIhtXUfW0FFV0j38t5PUv2n/3MFSRviQ==", + "dev": true + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": true, + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "engine.io": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-4.1.1.tgz", + "integrity": "sha512-t2E9wLlssQjGw0nluF6aYyfX8LwYU8Jj0xct+pAhfWfv/YrBn6TSNtEYsgxHIfaMqfrLx07czcMg9bMN6di+3w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~4.0.0", + "ws": "~7.4.2" + } + }, + "engine.io-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-4.0.2.tgz", + "integrity": "sha512-sHfEQv6nmtJrq6TKuIz5kyEKH/qSdK56H/A+7DnAuUPWosnIZAS2NHNcPLmyjtY3cGS/MqJdZbUjW97JU72iYg==", + "dev": true, + "requires": { + "base64-arraybuffer": "0.1.4" + } + }, + "enhanced-resolve": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.7.0.tgz", + "integrity": "sha512-6njwt/NsZFUKhM6j9U8hzVyD4E4r0x7NQzhTCbcWOJ0IQjNSAoalWmb0AE51Wn+fwan5qVESWi7t2ToBxs9vrw==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "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==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + } + }, + "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==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + }, + "dependencies": { + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + } + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.2.0.tgz", + "integrity": "sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E=", + "requires": { + "esprima": "~1.0.4", + "estraverse": "~1.5.0", + "esutils": "~1.0.0", + "source-map": "~0.1.30" + }, + "dependencies": { + "esprima": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.0.4.tgz", + "integrity": "sha1-n1V+CPw7TSbs6d00+Pv0drYlha0=" + }, + "estraverse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.5.1.tgz", + "integrity": "sha1-hno+jlip+EYYr7bC3bzZFrfLr3E=" + }, + "esutils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-1.0.0.tgz", + "integrity": "sha1-gVHTWOIMisx/t0XnRywAJf5JZXA=" + }, + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "optional": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "estree-is-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-is-function/-/estree-is-function-1.0.0.tgz", + "integrity": "sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "eventsource": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", + "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "extract-files": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-9.0.0.tgz", + "integrity": "sha512-CvdFfHkC95B4bBBk36hcEmvdR2awOdhhVUYH6S/zrVj3477zven/fJMYg7121h4T1xHZC+tetUpubpAhxwI7hQ==", + "dev": true + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "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==", + "dev": true + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "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==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, + "requires": { + "bser": "2.1.1" + } + }, + "fbjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.0.tgz", + "integrity": "sha512-dJd4PiDOFuhe7vk4F80Mba83Vr2QuK86FoxtgPmzBqEJahncp+13YCmfoa53KHCo6OnlXLG7eeMWPfB5CrpVKg==", + "dev": true, + "requires": { + "cross-fetch": "^3.0.4", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "dev": true + }, + "fflate": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz", + "integrity": "sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A==" + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fmin": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/fmin/-/fmin-0.0.2.tgz", + "integrity": "sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc=", + "requires": { + "contour_plot": "^0.0.1", + "json2module": "^0.0.3", + "rollup": "^0.25.8", + "tape": "^4.5.1", + "uglify-js": "^2.6.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "rollup": { + "version": "0.25.8", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.25.8.tgz", + "integrity": "sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA=", + "requires": { + "chalk": "^1.1.1", + "minimist": "^1.2.0", + "source-map-support": "^0.3.2" + } + }, + "source-map": { + "version": "0.1.32", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz", + "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", + "requires": { + "amdefine": ">=0.0.4" + } + }, + "source-map-support": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.3.3.tgz", + "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=", + "requires": { + "source-map": "0.1.32" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + } + } + }, + "follow-redirects": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", + "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", + "dev": true + }, + "fontkit": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/fontkit/-/fontkit-1.8.1.tgz", + "integrity": "sha512-BsNCjDoYRxmNWFdAuK1y9bQt+igIxGtTC9u/jSFjR9MKhmI00rP1fwSvERt+5ddE82544l0XH5mzXozQVUy2Tw==", + "requires": { + "babel-runtime": "^6.26.0", + "brfs": "^2.0.0", + "brotli": "^1.2.0", + "browserify-optional": "^1.0.1", + "clone": "^1.0.4", + "deep-equal": "^1.0.0", + "dfa": "^1.2.0", + "restructure": "^0.5.3", + "tiny-inflate": "^1.0.2", + "unicode-properties": "^1.2.2", + "unicode-trie": "^0.3.0" + }, + "dependencies": { + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "unicode-trie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz", + "integrity": "sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU=", + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + } + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "foundation-sites": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/foundation-sites/-/foundation-sites-6.6.3.tgz", + "integrity": "sha512-8X93wUAmUg1HhVv8uWMWnwoBLSQWSmFImJencneIZDctswn724Bq/MV1cbPZN/GFWGOB/9ngoQHztfzd4+ovCg==", + "requires": {} + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, + "fraction.js": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.13.tgz", + "integrity": "sha512-E1fz2Xs9ltlUp+qbiyx9wmt2n9dRzPsS11Jtdb8D2o+cC7wr9xkkKsVKJuBX0ST+LVS+LhLO+SbLJNtfWcJvXA==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-capacitor": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/fs-capacitor/-/fs-capacitor-6.2.0.tgz", + "integrity": "sha512-nKcE1UduoSKX27NSZlg879LdQc94OtbOsEmKMN2MBNudXREvijRKx2GEBsTMTfws+BrbkJoEuynbGSVRSpauvw==", + "dev": true + }, + "fs-extra": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", + "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "fuse.js": { + "version": "6.4.6", + "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-6.4.6.tgz", + "integrity": "sha512-/gYxR/0VpXmWSfZOIPS3rWwU8SHgsRTwWuXhyb2O6s7aRuVtHtxCkR33bNYu3wyLyNx/Wpv0vU7FZy8Vj53VNw==" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "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==", + "dev": true + }, + "get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" + }, + "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==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==", + "dev": true + }, + "graphql": { + "version": "15.5.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz", + "integrity": "sha512-OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==" + }, + "graphql-config": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-3.2.0.tgz", + "integrity": "sha512-ygEKDeQNZKpm4137560n2oY3bGM0D5zyRsQVaJntKkufWdgPg6sb9/4J1zJW2y/yC1ortAbhNho09qmeJeLa9g==", + "dev": true, + "requires": { + "@endemolshinegroup/cosmiconfig-typescript-loader": "3.0.2", + "@graphql-tools/graphql-file-loader": "^6.0.0", + "@graphql-tools/json-file-loader": "^6.0.0", + "@graphql-tools/load": "^6.0.0", + "@graphql-tools/merge": "^6.0.0", + "@graphql-tools/url-loader": "^6.0.0", + "@graphql-tools/utils": "^6.0.0", + "cosmiconfig": "6.0.0", + "cosmiconfig-toml-loader": "1.0.0", + "minimatch": "3.0.4", + "string-env-interpolation": "1.0.1", + "tslib": "^2.0.0" + }, + "dependencies": { + "@endemolshinegroup/cosmiconfig-typescript-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-3.0.2.tgz", + "integrity": "sha512-QRVtqJuS1mcT56oHpVegkKBlgtWjXw/gHNWO3eL9oyB5Sc7HBoc2OLG/nYpVfT/Jejvo3NUrD0Udk7XgoyDKkA==", + "dev": true, + "requires": { + "lodash.get": "^4", + "make-error": "^1", + "ts-node": "^9", + "tslib": "^2" + } + }, + "@graphql-tools/utils": { + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.4.tgz", + "integrity": "sha512-ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==", + "dev": true, + "requires": { + "@ardatan/aggregate-error": "0.0.6", + "camel-case": "4.1.1", + "tslib": "~2.0.1" + } + }, + "camel-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", + "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", + "dev": true, + "requires": { + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@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" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true + }, + "ts-node": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.1.1.tgz", + "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==", + "dev": true + } + } + }, + "graphql-request": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-3.4.0.tgz", + "integrity": "sha512-acrTzidSlwAj8wBNO7Q/UQHS8T+z5qRGquCQRv9J1InwR01BBWV9ObnoE+JS5nCCEj8wSGS0yrDXVDoRiKZuOg==", + "dev": true, + "requires": { + "cross-fetch": "^3.0.6", + "extract-files": "^9.0.0", + "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "graphql-tag": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz", + "integrity": "sha512-VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==", + "requires": {} + }, + "graphql-upload": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/graphql-upload/-/graphql-upload-11.0.0.tgz", + "integrity": "sha512-zsrDtu5gCbQFDWsNa5bMB4nf1LpKX9KDgh+f8oL1288ijV4RxeckhVozAjqjXAfRpxOHD1xOESsh6zq8SjdgjA==", + "dev": true, + "requires": { + "busboy": "^0.3.1", + "fs-capacitor": "^6.1.0", + "http-errors": "^1.7.3", + "isobject": "^4.0.0", + "object-path": "^0.11.4" + }, + "dependencies": { + "http-errors": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz", + "integrity": "sha512-4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==", + "dev": true + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + } + } + }, + "graphql-ws": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-4.2.2.tgz", + "integrity": "sha512-b6TLtWLAmKunD72muL9EeItRGpio9+V3Cx4zJsBkRA+3wxzTWXDvQr9/3qSwJ3D/2abz0ys2KHTM6lB1uH7KIQ==", + "dev": true, + "requires": {} + }, + "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==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + } + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "header-case": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", + "dev": true, + "requires": { + "capital-case": "^1.0.4", + "tslib": "^2.0.3" + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hosted-git-info": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.8.tgz", + "integrity": "sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "html2canvas": { + "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-rc.7.tgz", + "integrity": "sha512-yvPNZGejB2KOyKleZspjK/NruXVQuowu8NnV2HYG7gW7ytzl+umffbtUI62v2dCHQLDdsK6HIDtyJZ0W3neerA==", + "requires": { + "css-line-break": "1.1.1" + } + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "dev": true, + "requires": {} + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "dev": true + }, + "immutable": { + "version": "3.7.6", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha1-E7TTyxK++hVIKib+Gy665kAHHks=", + "dev": true + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz", + "integrity": "sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "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==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz", + "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "internmap": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/internmap/-/internmap-1.0.1.tgz", + "integrity": "sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "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==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=", + "dev": true + }, + "is-lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "requires": { + "symbol-observable": "^1.1.0" + }, + "dependencies": { + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + } + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", + "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dev": true, + "requires": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "dev": true, + "requires": {} + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.6.0.tgz", + "integrity": "sha512-8uQYa7zJN8hq9z+g8z1bqCfdC8eoDAeVnM5sfqs7KHv9/ifoJ500m018fpFc7RDaO6SWCLCXwo/wPSNcdYTgcw==", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-5.0.2.tgz", + "integrity": "sha512-6gP1LbVgJ+d7PKksQBc2H0oDGNRQI3gKUsWlswKaQ2fif9X5gzhQcgM5+kiJGCQVurOG09jqNhk7payggyp5+g==", + "dev": true, + "requires": { + "colors": "1.4.0" + } + }, + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jquery": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "peer": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "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==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "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==", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json-to-pretty-yaml": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz", + "integrity": "sha1-9M0L0KXo/h3yWq9boRiwmf2ZLVs=", + "dev": true, + "requires": { + "remedial": "^1.0.7", + "remove-trailing-spaces": "^1.0.6" + } + }, + "json2module": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/json2module/-/json2module-0.0.3.tgz", + "integrity": "sha1-APtfSpt638PwZHwpyxe80Zeb6bI=", + "requires": { + "rw": "^1.3.2" + } + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "dev": true, + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "jspdf": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.3.1.tgz", + "integrity": "sha512-1vp0USP1mQi1h7NKpwxjFgQkJ5ncZvtH858aLpycUc/M+r/RpWJT8PixAU7Cw/3fPd4fpC8eB/Bj42LnsR21YQ==", + "requires": { + "atob": "^2.1.2", + "btoa": "^1.2.1", + "canvg": "^3.0.6", + "core-js": "^3.6.0", + "dompurify": "^2.2.0", + "fflate": "^0.4.8", + "html2canvas": "^1.0.0-rc.5" + }, + "dependencies": { + "fflate": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz", + "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" + } + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsrsasign-reduced": { + "version": "8.0.15", + "resolved": "https://registry.npmjs.org/jsrsasign-reduced/-/jsrsasign-reduced-8.0.15.tgz", + "integrity": "sha512-Ig4W69nXCIUedzOSk3nqJWUr2DmSDENYfsmCqVK33GPETtPcjwREGQc92hV5jcJ6zavMvGD4tjhZ+T7JIiaSLA==" + }, + "jszip": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.6.0.tgz", + "integrity": "sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "karma": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.1.2.tgz", + "integrity": "sha512-mKbxgsJrt3UHBPdKfCxC2eg3lpqyt6hQRFhNWJ2sk0wUnbnLPEiCpgIgiycuLSra0vC6TaK9OPJiMGATGzgH/A==", + "dev": true, + "requires": { + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.4.2", + "colors": "^1.4.0", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.6", + "graceful-fs": "^4.2.4", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.6", + "lodash": "^4.17.19", + "log4js": "^6.2.1", + "mime": "^2.4.5", + "minimatch": "^3.0.4", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^3.1.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "^0.7.23", + "yargs": "^16.1.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + } + } + }, + "karma-chrome-launcher": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", + "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", + "dev": true, + "requires": { + "which": "^1.2.1" + } + }, + "karma-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.0.3.tgz", + "integrity": "sha512-atDvLQqvPcLxhED0cmXYdsPMCQuh6Asa9FMZW1bhNqlVEhJoB9qyZ2BY1gu7D/rr5GLGb5QzYO4siQskxaWP/g==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.1", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.0", + "minimatch": "^3.0.4" + } + }, + "karma-jasmine": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-4.0.1.tgz", + "integrity": "sha512-h8XDAhTiZjJKzfkoO1laMH+zfNlra+dEQHUAjpn5JV1zCPtOIVWGQjLBrqhnzQa/hrU2XrZwSyBa6XjEBzfXzw==", + "dev": true, + "requires": { + "jasmine-core": "^3.6.0" + } + }, + "karma-jasmine-html-reporter": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", + "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "dev": true, + "requires": {} + }, + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "dev": true, + "requires": { + "source-map-support": "^0.5.5" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "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==", + "dev": true + }, + "klona": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.4.tgz", + "integrity": "sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==", + "dev": true + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "less": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.1.tgz", + "integrity": "sha512-w09o8tZFPThBscl5d0Ggp3RcrKIouBoQscnOMgFH3n5V3kN/CXGHNfCkRPtxJk6nKryDXaV9aHLK55RXuH4sAw==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^1.10.0" + }, + "dependencies": { + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "less-loader": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-7.3.0.tgz", + "integrity": "sha512-Mi8915g7NMaLlgi77mgTTQvK022xKRQBIVDSyfl3ErTuBhmZBQab0mjeJjNNqGbdR+qrfTleKXqbGI4uEFavxg==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "license-webpack-plugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.11.tgz", + "integrity": "sha512-0iVGoX5vx0WDy8dmwTTpOOMYiGqILyUbDeVMFH52AjgBlS58lHwOlFMSoqg5nY8Kxl6+FRKyUZY/UdlQaOyqDw==", + "dev": true, + "requires": { + "@types/webpack-sources": "^0.1.5", + "webpack-sources": "^1.2.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } + }, + "linebreak": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/linebreak/-/linebreak-1.0.2.tgz", + "integrity": "sha512-bJwSRsJeAmaZYnkcwl5sCQNfSDAhBuXxb6L27tb+qkBRtUQSSTUa5bcgCPD6hFEkRNlpWHfK7nFMmcANU7ZP1w==", + "requires": { + "base64-js": "0.0.8", + "brfs": "^2.0.2", + "unicode-trie": "^1.0.0" + }, + "dependencies": { + "base64-js": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", + "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" + } + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "dev": true, + "requires": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + }, + "dependencies": { + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "dependencies": { + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.get": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", + "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", + "dev": true + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", + "dev": true + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", + "dev": true + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", + "dev": true + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", + "dev": true + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", + "dev": true + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } + } + } + }, + "log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "dev": true, + "requires": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + } + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "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==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lower-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-2.0.2.tgz", + "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "dev": true, + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "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==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "make-fetch-happen": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", + "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "dev": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^5.0.0", + "ssri": "^8.0.0" + }, + "dependencies": { + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "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==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true + }, + "mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "dev": true, + "requires": { + "mime-db": "1.46.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.5.tgz", + "integrity": "sha512-tvmzcwqJJXau4OQE5vT72pRT18o2zF+tQJp8CWchqvfQnTlflkzS+dANYcRdyPRWUWRkfmeNTKltx0NZI/b5dQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "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==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", + "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", + "dev": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "dev": true, + "requires": { + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true, + "optional": true + }, + "nanoid": { + "version": "3.1.22", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.22.tgz", + "integrity": "sha512-/2ZUaJX2ANuLtTvqTlgqBQNJoQO398KyJgZloL0PZkC0dpysjncRUPsFe3DUPzz/y3h+u7C46np8RMuvF3jsSQ==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "needle": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz", + "integrity": "sha512-KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "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==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "ngx-cookie-service": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/ngx-cookie-service/-/ngx-cookie-service-11.0.2.tgz", + "integrity": "sha512-nsjzdcjK+gNAweE/DDdnOyHo04jlxTeMXOL/oJNp8MHtOTvCXnOtIFYgq4Sb2JU6UXTovO9tHEMIf9TxjlsdgQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "dev": true + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-gyp": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", + "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "dev": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.3", + "nopt": "^5.0.0", + "npmlog": "^4.1.2", + "request": "^2.88.2", + "rimraf": "^3.0.2", + "semver": "^7.3.2", + "tar": "^6.0.2", + "which": "^2.0.2" + }, + "dependencies": { + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "dev": true + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-install-checks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", + "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "dev": true, + "requires": { + "semver": "^7.1.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-package-arg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.0.tgz", + "integrity": "sha512-/ep6QDxBkm9HvOhOg0heitSd7JHA1U7y1qhhlRlteYYAi9Pdb/ZV7FW5aHpkrpM8+P+4p/jjR8zCyKPBMBjSig==", + "dev": true, + "requires": { + "hosted-git-info": "^3.0.6", + "semver": "^7.0.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-packlist": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.4.tgz", + "integrity": "sha512-Qzg2pvXC9U4I4fLnUrBmcIT4x0woLtUgxUi9eC+Zrcv1Xx5eamytGAfbDWQ67j7xOcQ2VW1I3su9smVTIdu7Hw==", + "dev": true, + "requires": { + "glob": "^7.1.6", + "ignore-walk": "^3.0.3", + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.0.tgz", + "integrity": "sha512-ygs4k6f54ZxJXrzT0x34NybRlLeZ4+6nECAIbr2i0foTnijtS1TJiyzpqtuUAJOps/hO0tNDr8fRV5g+BtRlTw==", + "dev": true, + "requires": { + "npm-install-checks": "^4.0.0", + "npm-package-arg": "^8.0.0", + "semver": "^7.0.0" + } + }, + "npm-registry-fetch": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-9.0.0.tgz", + "integrity": "sha512-PuFYYtnQ8IyVl6ib9d3PepeehcUeHN9IO5N/iCRhyg9tStQcqGQBRVHmfmMWPDERU3KwZoHFvbJ4FPXPspvzbA==", + "dev": true, + "requires": { + "@npmcli/ci-detect": "^1.0.0", + "lru-cache": "^6.0.0", + "make-fetch-happen": "^8.0.9", + "minipass": "^3.1.3", + "minipass-fetch": "^1.3.0", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.0.0", + "npm-package-arg": "^8.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-path": { + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.11.5.tgz", + "integrity": "sha512-jgSbThcoR/s+XumvGMTMf81QVBmah+/Q7K7YduKeKVWL7N111unR2d6pZZarSk6kY/caeNxUDyxOvMWyzoU2eg==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "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==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "open": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.4.0.tgz", + "integrity": "sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + }, + "dependencies": { + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "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" + } + }, + "ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "dev": true, + "requires": { + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + }, + "dependencies": { + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + } + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + }, + "dependencies": { + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + } + } + }, + "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==", + "dev": true + }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "pacote": { + "version": "11.2.4", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.2.4.tgz", + "integrity": "sha512-GfTeVQGJ6WyBQbQD4t3ocHbyOmTQLmWjkCKSZPmKiGFKYKNUaM5U2gbLzUW8WG1XmS9yQFnsTFA0k3o1+q4klQ==", + "dev": true, + "requires": { + "@npmcli/git": "^2.0.1", + "@npmcli/installed-package-contents": "^1.0.5", + "@npmcli/promise-spawn": "^1.2.0", + "@npmcli/run-script": "^1.3.0", + "cacache": "^15.0.5", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.3", + "mkdirp": "^1.0.3", + "npm-package-arg": "^8.0.1", + "npm-packlist": "^2.1.4", + "npm-pick-manifest": "^6.0.0", + "npm-registry-fetch": "^9.0.0", + "promise-retry": "^1.1.1", + "read-package-json-fast": "^1.1.3", + "rimraf": "^3.0.2", + "ssri": "^8.0.0", + "tar": "^6.1.0" + } + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "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==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + }, + "dependencies": { + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + } + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", + "dev": true, + "requires": { + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", + "dev": true, + "requires": { + "parse5": "^6.0.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "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==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pdfkit": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/pdfkit/-/pdfkit-0.11.0.tgz", + "integrity": "sha512-1s9gaumXkYxcVF1iRtSmLiISF2r4nHtsTgpwXiK8Swe+xwk/1pm8FJjYqN7L3x13NsWnGyUFntWcO8vfqq+wwA==", + "requires": { + "crypto-js": "^3.1.9-1", + "fontkit": "^1.8.0", + "linebreak": "^1.0.2", + "png-js": "^1.0.0" + } + }, + "pdfmake": { + "version": "0.1.70", + "resolved": "https://registry.npmjs.org/pdfmake/-/pdfmake-0.1.70.tgz", + "integrity": "sha512-xPhkblaQ71U97qhRTPj/1HknAHHFZ3cPRmRdrqEWD2xXBcEjEM3Yw0MIjML8DRy9Dt9n6QRjHVf662f0eLtd7Q==", + "requires": { + "iconv-lite": "^0.6.2", + "linebreak": "^1.0.2", + "pdfkit": "^0.11.0", + "svg-to-pdfkit": "^0.1.8", + "xmldoc": "^1.1.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "png-js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/png-js/-/png-js-1.0.0.tgz", + "integrity": "sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g==" + }, + "pnp-webpack-plugin": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", + "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", + "dev": true, + "requires": { + "ts-pnp": "^1.1.6" + } + }, + "polylabel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/polylabel/-/polylabel-1.1.0.tgz", + "integrity": "sha512-bxaGcA40sL3d6M4hH72Z4NdLqxpXRsCFk8AITYg6x1rn1Ei3izf00UMLklerBZTO49aPA3CYrIwVulx2Bce2pA==", + "requires": { + "tinyqueue": "^2.0.3" + } + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.4.tgz", + "integrity": "sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg==", + "dev": true, + "requires": { + "colorette": "^1.2.1", + "nanoid": "^3.1.20", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-import": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.0.0.tgz", + "integrity": "sha512-gFDDzXhqr9ELmnLHgCC3TbGfA6Dm/YMb/UN8/f7Uuq4fL7VTk2vOIj6hwINEwbokEmp123bLD7a5m+E+KIetRg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + } + }, + "postcss-loader": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.2.0.tgz", + "integrity": "sha512-mqgScxHqbiz1yxbnNcPdKYo/6aVt+XExURmEbQlviFVWogDbM4AJ0A/B+ZBpYsJrTRxKw7HyRazg9x0Q9SWwLA==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.4" + }, + "dependencies": { + "cosmiconfig": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", + "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "dev": true, + "requires": { + "@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" + } + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "@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" + } + }, + "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==", + "dev": true + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "dev": true, + "requires": {} + }, + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } + }, + "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==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "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==", + "dev": true + }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "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==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "dev": true, + "requires": { + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true + }, + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.2.tgz", + "integrity": "sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg==", + "dev": true + }, + "quote-stream": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz", + "integrity": "sha1-hJY/jJwmuULhU/7rU6rnRlK34LI=", + "requires": { + "buffer-equal": "0.0.1", + "minimist": "^1.1.3", + "through2": "^2.0.0" + } + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "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==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "raw-loader": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-4.0.2.tgz", + "integrity": "sha512-ZnScIV3ag9A4wPX/ZayxL/jZH+euYb6FcUinPcgiQW0+UBtEv0O6Q3lGd3cqJ+GHH+rksEv3Pj99oxJ3u3VIKA==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + } + } + }, + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", + "dev": true, + "requires": { + "pify": "^2.3.0" + } + }, + "read-package-json-fast": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.2.2.tgz", + "integrity": "sha512-39DbPJjkltEzfXJXB6D8/Ir3GFOU2YbSKa2HaB/Y3nKrc/zY+0XrALpID6/13ezWyzqvOHrBbR4t4cjQuTdBVQ==", + "dev": true, + "requires": { + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "registry-auth-token": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", + "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", + "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "regression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regression/-/regression-2.0.1.tgz", + "integrity": "sha1-jSnD6CJKEIUMNeM36FqLL6w7DIc=" + }, + "relay-compiler": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/relay-compiler/-/relay-compiler-10.1.0.tgz", + "integrity": "sha512-HPqc3N3tNgEgUH5+lTr5lnLbgnsZMt+MRiyS0uAVNhuPY2It0X1ZJG+9qdA3L9IqKFUNwVn6zTO7RArjMZbARQ==", + "dev": true, + "requires": { + "@babel/core": "^7.0.0", + "@babel/generator": "^7.5.0", + "@babel/parser": "^7.0.0", + "@babel/runtime": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.3.0", + "chalk": "^4.0.0", + "fb-watchman": "^2.0.0", + "fbjs": "^3.0.0", + "glob": "^7.1.1", + "immutable": "~3.7.6", + "nullthrows": "^1.1.1", + "relay-runtime": "10.1.0", + "signedsource": "^1.0.0", + "yargs": "^15.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "relay-runtime": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/relay-runtime/-/relay-runtime-10.1.0.tgz", + "integrity": "sha512-bxznLnQ1ST6APN/cFi7l0FpjbZVchWQjjhj9mAuJBuUqNNCh9uV+UTRhpQF7Q8ycsPp19LHTpVyGhYb0ustuRQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0" + } + }, + "remedial": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remedial/-/remedial-1.0.8.tgz", + "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "remove-trailing-spaces": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/remove-trailing-spaces/-/remove-trailing-spaces-1.0.8.tgz", + "integrity": "sha512-O3vsMYfWighyFbTd8hk8VaSj9UAGENxAtX+//ugIst2RMk5e03h6RoIS+0ylsFxY1gvmPuAY/PO4It+gPEeySA==", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "replaceall": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/replaceall/-/replaceall-0.1.6.tgz", + "integrity": "sha1-gdgax663LX9cSUKt8ml6MiBojY4=", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "restructure": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/restructure/-/restructure-0.5.4.tgz", + "integrity": "sha1-9U591WNZD7NP1r9Vh2EJrsyyjeg=", + "requires": { + "browserify-optional": "^1.0.0" + } + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "~2.3.4" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rgbcolor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha1-1lBezbMEplldom+ktDMHMGd1lF0=" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "2.38.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.38.4.tgz", + "integrity": "sha512-B0LcJhjiwKkTl79aGVF/u5KdzsH8IylVfV56Ut6c9ouWLJcUK17T83aZBetNYSnZtXf2OHD4+2PbmRW+Fp5ulg==", + "dev": true, + "requires": { + "fsevents": "~2.3.1" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" + }, + "rxjs": { + "version": "6.6.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", + "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "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==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sass": { + "version": "1.32.6", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.6.tgz", + "integrity": "sha512-1bcDHDcSqeFtMr0JXI3xc/CXX6c4p0wHHivJdru8W7waM7a1WjKMm4m/Z5sY7CbVw4Whi2Chpcw6DFfSWwGLzQ==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.1.1.tgz", + "integrity": "sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "neo-async": "^2.6.2", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + }, + "dependencies": { + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "scope-analyzer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/scope-analyzer/-/scope-analyzer-2.1.1.tgz", + "integrity": "sha512-azEAihtQ9mEyZGhfgTJy3IbOWEzeOrYbg7NcYEshPKnKd+LZmC3TNd5dmDxbLBsTG/JVWmCp+vDJ03vJjeXMHg==", + "requires": { + "array-from": "^2.1.1", + "dash-ast": "^1.0.0", + "es6-map": "^0.1.5", + "es6-set": "^0.1.5", + "es6-symbol": "^3.1.1", + "estree-is-function": "^1.0.0", + "get-assigned-identifiers": "^1.1.0" + } + }, + "scuid": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/scuid/-/scuid-1.1.0.tgz", + "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==", + "dev": true + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "dev": true, + "requires": { + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.1" + } + } + } + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "^5.3.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "semver-intersect": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", + "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "dev": true, + "requires": { + "semver": "^5.0.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "sentence-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, + "serialize-javascript": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shallow-copy": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz", + "integrity": "sha1-QV9CcC1z2BAzApLMXuhurhoRoXA=" + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "signedsource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/signedsource/-/signedsource-1.0.0.tgz", + "integrity": "sha1-HdrOSYF5j5O9gzlzgD2A1S6TrWo=", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "socket.io": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-3.1.2.tgz", + "integrity": "sha512-JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.0", + "@types/cors": "^2.8.8", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.1", + "engine.io": "~4.1.0", + "socket.io-adapter": "~2.1.0", + "socket.io-parser": "~4.0.3" + } + }, + "socket.io-adapter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.1.0.tgz", + "integrity": "sha512-+vDov/aTsLjViYTwS9fPy5pEtTkrbEKsw2M+oVSoFGw6OD1IpvlV1VPhUzNbofCQ8oyMbdYJqDtGdmHQK6TdPg==", + "dev": true + }, + "socket.io-parser": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.4.tgz", + "integrity": "sha512-t+b0SS+IxG7Rxzda2EVvyBZbvFPBCjJoyHuE0P//7OAsN23GItzDRdWa6ALxZI/8R5ygK7jAR6t028/z+7295g==", + "dev": true, + "requires": { + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" + } + }, + "sockjs": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", + "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^3.4.0", + "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "sockjs-client": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", + "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", + "dev": true, + "requires": { + "debug": "^3.2.6", + "eventsource": "^1.0.7", + "faye-websocket": "^0.11.3", + "inherits": "^2.0.4", + "json3": "^3.3.3", + "url-parse": "^1.4.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socks": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.0.tgz", + "integrity": "sha512-mNmr9owlinMplev0Wd7UHFlqI4ofnBnNzFuzrm63PPaHgbkqCFe4T5LzwKmtQ/f2tX0NTpcdVLyD/FHxFBstYw==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz", + "integrity": "sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4", + "socks": "^2.3.3" + } + }, + "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==", + "dev": true + }, + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + }, + "source-map-loader": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.1.3.tgz", + "integrity": "sha512-6YHeF+XzDOrT/ycFJNI53cgEsp/tHTMl37hi7uVyqFAlTXW109JazaQCkbc+jjoL2637qkH1amLi+JzrIpt5lA==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.2", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "source-map": "^0.6.1", + "whatwg-mimetype": "^2.3.0" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "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" + } + }, + "speed-measure-webpack-plugin": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.4.2.tgz", + "integrity": "sha512-AtVzD0bnIy2/B0fWqJpJgmhcrfWFhBlduzSo0uwplr/QvB33ZNZj2NEth3NONgdnZJqicK0W0mSxnLSbsVCDbw==", + "dev": true, + "requires": { + "chalk": "^4.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sponge-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sponge-case/-/sponge-case-1.0.1.tgz", + "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, + "sse-z": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/sse-z/-/sse-z-0.3.0.tgz", + "integrity": "sha512-jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==", + "dev": true + }, + "ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "requires": { + "frac": "~1.1.2" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stackblur-canvas": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.5.0.tgz", + "integrity": "sha512-EeNzTVfj+1In7aSLPKDD03F/ly4RxEuF/EX0YcOG0cKoPXs+SLZxDawQbexQDBzwROs4VKLWTOaZQlZkGBFEIQ==" + }, + "static-eval": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz", + "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==", + "requires": { + "escodegen": "^1.11.1" + }, + "dependencies": { + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "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 + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "static-module": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/static-module/-/static-module-3.0.4.tgz", + "integrity": "sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw==", + "requires": { + "acorn-node": "^1.3.0", + "concat-stream": "~1.6.0", + "convert-source-map": "^1.5.1", + "duplexer2": "~0.1.4", + "escodegen": "^1.11.1", + "has": "^1.0.1", + "magic-string": "0.25.1", + "merge-source-map": "1.0.4", + "object-inspect": "^1.6.0", + "readable-stream": "~2.3.3", + "scope-analyzer": "^2.0.1", + "shallow-copy": "~0.0.1", + "static-eval": "^2.0.5", + "through2": "~2.0.3" + }, + "dependencies": { + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "magic-string": { + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.1.tgz", + "integrity": "sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg==", + "requires": { + "sourcemap-codec": "^1.4.1" + } + }, + "merge-source-map": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz", + "integrity": "sha1-pd5GU42uhNQRTMXqArR3KmNGcB8=", + "requires": { + "source-map": "^0.5.6" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "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" + } + }, + "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 + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "dev": true, + "requires": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + } + } + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "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==", + "dev": true + } + } + }, + "string-env-interpolation": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz", + "integrity": "sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==", + "dev": true + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "string.prototype.trim": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz", + "integrity": "sha512-hWCk/iqf7lp0/AgTF7/ddO1IWtSNPASjlzCicV5irAVdE1grjsneK26YG6xACMBEdCvO8fUST0UzDMh/2Qy+9Q==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "style-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-2.0.0.tgz", + "integrity": "sha512-Z0gYUJmzZ6ZdRUqpg1r8GsaFKypE+3xAzuFeMuoHgjc9KZv3wMyCRjQIWEbhoFSq7+7yoHXySDJyyWQaPajeiQ==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "stylus": { + "version": "0.54.8", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz", + "integrity": "sha512-vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==", + "dev": true, + "requires": { + "css-parse": "~2.0.0", + "debug": "~3.1.0", + "glob": "^7.1.6", + "mkdirp": "~1.0.4", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "semver": "^6.3.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "stylus-loader": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-4.3.3.tgz", + "integrity": "sha512-PpWB5PnCXUzW4WMYhCvNzAHJBjIBPMXwsdfkkKuA9W7k8OQFMl/19/AQvaWsxz2IptxUlCseyJ6TY/eEKJ4+UQ==", + "dev": true, + "requires": { + "fast-glob": "^3.2.4", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "normalize-path": "^3.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-pathdata": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-5.0.5.tgz", + "integrity": "sha512-TAAvLNSE3fEhyl/Da19JWfMAdhSXTYeviXsLSoDT1UM76ADj5ndwAPX1FKQEgB/gFMPavOy6tOqfalXKUiXrow==", + "optional": true + }, + "svg-to-pdfkit": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/svg-to-pdfkit/-/svg-to-pdfkit-0.1.8.tgz", + "integrity": "sha512-QItiGZBy5TstGy+q8mjQTMGRlDDOARXLxH+sgVm1n/LYeo0zFcQlcCh8m4zi8QxctrxB9Kue/lStc/RD5iLadQ==", + "requires": { + "pdfkit": ">=0.8.1" + } + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "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" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "swap-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-2.0.2.tgz", + "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "symbol-observable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-3.0.0.tgz", + "integrity": "sha512-6tDOXSHiVjuCaasQSWTmHUWn4PuG7qa3+1WT031yTc/swT7+rLiw3GOrFxaH1E3lLP09dH3bVuVDf2gK5rxG3Q==", + "dev": true + }, + "sync-fetch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/sync-fetch/-/sync-fetch-0.3.0.tgz", + "integrity": "sha512-dJp4qg+x4JwSEW1HibAuMi0IIrBI3wuQr2GimmqB7OXR50wmwzfdusG+p39R9w3R6aFtZ2mzvxvWKQ3Bd/vx3g==", + "dev": true, + "requires": { + "buffer": "^5.7.0", + "node-fetch": "^2.6.1" + } + }, + "tapable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", + "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", + "dev": true + }, + "tape": { + "version": "4.13.3", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.13.3.tgz", + "integrity": "sha512-0/Y20PwRIUkQcTCSi4AASs+OANZZwqPKaipGCEwp10dQMipVvSZwUUCi01Y/OklIGyHKFhIcjock+DKnBfLAFw==", + "requires": { + "deep-equal": "~1.1.1", + "defined": "~1.0.0", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.6", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.0.5", + "minimist": "~1.2.5", + "object-inspect": "~1.7.0", + "resolve": "~1.17.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.2.1", + "through": "~2.3.8" + }, + "dependencies": { + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "requires": { + "has": "^1.0.3" + } + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==" + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + } + } + }, + "tar": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "terser": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.5.1.tgz", + "integrity": "sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.7.2", + "source-map-support": "~0.5.19" + } + }, + "terser-webpack-plugin": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz", + "integrity": "sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ==", + "dev": true, + "requires": { + "cacache": "^15.0.5", + "find-cache-dir": "^3.3.1", + "jest-worker": "^26.5.0", + "p-limit": "^3.0.2", + "schema-utils": "^3.0.0", + "serialize-javascript": "^5.0.1", + "source-map": "^0.6.1", + "terser": "^5.3.4", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "schema-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.0.0.tgz", + "integrity": "sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.6", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "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" + } + }, + "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==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tiny-inflate": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", + "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==" + }, + "tinyqueue": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tinyqueue/-/tinyqueue-2.0.3.tgz", + "integrity": "sha512-ppJZNDuKGgxzkHihX8v9v9G5f+18gzaTfrukGrq6ueg0lmH4nqVnA2IPG0AEH3jKEk2GRJCUhDoqpoiw3PHLBA==" + }, + "title-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true + }, + "ts-log": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.3.tgz", + "integrity": "sha512-XvB+OdKSJ708Dmf9ore4Uf/q62AYDTzFcAdxc8KNML1mmAWywRFVt/dn1KYJH8Agt5UJNujfM3znU5PxgAzA2w==", + "dev": true + }, + "ts-node": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", + "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.6", + "yn": "^3.0.0" + } + }, + "ts-pnp": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/ts-pnp/-/ts-pnp-1.2.0.tgz", + "integrity": "sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw==", + "dev": true + }, + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + }, + "tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", + "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typescript": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz", + "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.24", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.24.tgz", + "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "unbox-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", + "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.0", + "has-symbols": "^1.0.0", + "which-boxed-primitive": "^1.0.1" + } + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-properties": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.3.1.tgz", + "integrity": "sha512-nIV3Tf3LcUEZttY/2g4ZJtGXhWwSkuLL+rCu0DIAMbjyVPj+8j5gNVz4T/sVbnQybIsd5SFGkPKg/756OY6jlA==", + "requires": { + "base64-js": "^1.3.0", + "unicode-trie": "^2.0.0" + }, + "dependencies": { + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + }, + "unicode-trie": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz", + "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==", + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + } + } + } + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "unicode-trie": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-1.0.0.tgz", + "integrity": "sha512-v5raLKsobbFbWLMoX9+bChts/VhPPj3XpkNr/HbqkirXR1DPk8eo9IYKyvk0MQZFkaoRsFj2Rmaqgi2rfAZYtA==", + "requires": { + "pako": "^0.2.5", + "tiny-inflate": "^1.0.0" + }, + "dependencies": { + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" + } + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universal-analytics": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", + "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "request": "^2.88.2", + "uuid": "^3.0.0" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unixify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz", + "integrity": "sha1-OmQcjC/7zk2mg6XHDwOkYpQMIJA=", + "dev": true, + "requires": { + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "upper-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "upper-case-first": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "requires": { + "tslib": "^2.0.3" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "valid-url": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", + "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", + "dev": true + }, + "validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "dev": true, + "requires": { + "builtins": "^1.0.3" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "venn.js": { + "version": "0.2.20", + "resolved": "https://registry.npmjs.org/venn.js/-/venn.js-0.2.20.tgz", + "integrity": "sha512-bb5SYq/wamY9fvcuErb9a0FJkgIFHJjkLZWonQ+DoKKuDX3WPH2B4ouI1ce4K2iejBklQy6r1ly8nOGIyOCO6w==", + "requires": { + "d3-selection": "^1.0.2", + "d3-transition": "^1.0.1", + "fmin": "0.0.2" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "optional": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "optional": true, + "requires": { + "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" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "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==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webdriver-js-extender": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", + "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", + "dev": true, + "requires": { + "@types/selenium-webdriver": "^3.0.0", + "selenium-webdriver": "^3.0.1" + } + }, + "webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "dev": true, + "requires": { + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "webpack": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", + "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "webpack-dev-server": { + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", + "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "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==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "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" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "webpack-merge": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.2.0.tgz", + "integrity": "sha512-bQsA24JLwcnWGArOKUxYKhX3Mz/nK1Xf6hxullKERyktjNMC4x8koOeaDNTA2fEJ09BdWLbM/iTW0ithREUP0w==", + "dev": true, + "requires": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-subresource-integrity": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.2.tgz", + "integrity": "sha512-GBWYBoyalbo5YClwWop9qe6Zclp8CIXYGIz12OPclJhIrSplDxs1Ls1JDMH8xBPPrg1T6ISaTW9Y6zOrwEiAzw==", + "dev": true, + "requires": { + "webpack-sources": "^1.3.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + } + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "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==", + "dev": true + }, + "what-input": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/what-input/-/what-input-5.2.10.tgz", + "integrity": "sha512-7AQoIMGq7uU8esmKniOtZG3A+pzlwgeyFpkS3f/yzRbxknSL68tvn5gjE6bZ4OMFxCPjpaBd2udUTqlZ0HwrXQ==", + "peer": true + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", + "dev": true + }, + "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==", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "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==", + "requires": { + "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" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==" + }, + "word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "worker-plugin": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-5.0.0.tgz", + "integrity": "sha512-AXMUstURCxDD6yGam2r4E34aJg6kW85IiaeX72hi+I1cxyaMUtrvVY6sbfpGKAj5e7f68Acl62BjQF5aOOx2IQ==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "ws": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", + "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "dev": true, + "requires": {} + }, + "xlsx": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.9.tgz", + "integrity": "sha512-gxi1I3EasYvgCX1vN9pGyq920Ron4NO8PNfhuoA3Hpq6Y8f0ECXiy4OLrK4QZBnj1jx3QD+8Fq5YZ/3mPZ5iXw==", + "requires": { + "adler-32": "~1.2.0", + "cfb": "^1.1.4", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "fflate": "^0.3.8", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + } + } + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true + }, + "xmldoc": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/xmldoc/-/xmldoc-1.1.2.tgz", + "integrity": "sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ==", + "requires": { + "sax": "^1.2.1" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz", + "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://registry.npmjs.org/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "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==", + "dev": true + }, + "zone.js": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.4.tgz", + "integrity": "sha512-DDh2Ab+A/B+9mJyajPjHFPWfYU1H+pdun4wnnk0OcQTNjem1XQSZ2CDW+rfZEUDjv5M19SBqAkjZi0x5wuB5Qw==", + "requires": { + "tslib": "^2.0.0" + } + } + } +} diff --git a/client/package.json b/client/package.json new file mode 100644 index 0000000..b0d1092 --- /dev/null +++ b/client/package.json @@ -0,0 +1,64 @@ +{ + "name": "dataspire-lite", + "version": "0.0.0", + "scripts": { + "ng": "ng", + "gene-graphql": "gql-gen --config ./src/app/graphql/config/codegen.yml", + "start": "ng serve", + "build": "ng build", + "build-prod": "ng build --configuration production", + "test": "ng test", + "lint": "ng lint --fix", + "e2e": "ng e2e" + }, + "private": true, + "dependencies": { + "@amcharts/amcharts4": "^4.10.16", + "@amcharts/amcharts4-fonts": "^4.0.1", + "@angular/animations": "~11.2.6", + "@angular/cdk": "^11.2.5", + "@angular/common": "~11.2.6", + "@angular/compiler": "~11.2.6", + "@angular/core": "~11.2.6", + "@angular/forms": "~11.2.6", + "@angular/material": "^11.2.5", + "@angular/platform-browser": "~11.2.6", + "@angular/platform-browser-dynamic": "~11.2.6", + "@angular/router": "~11.2.6", + "angular-auth-oidc-client": "11.6.4", + "angular-oauth2-oidc": "^10.0.3", + "classlist.js": "^1.1.20150312", + "foundation-sites": "^6.6.3", + "fuse.js": "^6.4.6", + "graphql": "^15.5.0", + "graphql-tag": "^2.11.0", + "html2canvas": "1.0.0-rc.7", + "jspdf": "^2.3.1", + "ngx-cookie-service": "^11.0.2", + "rxjs": "~6.6.0", + "tslib": "^2.0.0", + "zone.js": "~0.11.3" + }, + "devDependencies": { + "@angular-devkit/build-angular": "~0.1102.5", + "@angular/cli": "~11.2.5", + "@angular/compiler-cli": "~11.2.6", + "@graphql-codegen/cli": "^1.21.3", + "@graphql-codegen/typescript": "^1.21.1", + "@graphql-codegen/typescript-document-nodes": "^1.17.10", + "@types/jasmine": "~3.6.0", + "@types/node": "^12.11.1", + "codelyzer": "^6.0.0", + "jasmine-core": "~3.6.0", + "jasmine-spec-reporter": "~5.0.0", + "karma": "~6.1.0", + "karma-chrome-launcher": "~3.1.0", + "karma-coverage": "~2.0.3", + "karma-jasmine": "~4.0.0", + "karma-jasmine-html-reporter": "^1.5.0", + "protractor": "~7.0.0", + "ts-node": "~8.3.0", + "tslint": "~6.1.0", + "typescript": "~4.1.5" + } +} diff --git a/client/sass/_colors-variables.scss b/client/sass/_colors-variables.scss new file mode 100644 index 0000000..463c19f --- /dev/null +++ b/client/sass/_colors-variables.scss @@ -0,0 +1,17 @@ +$primary: #64b293; +$secondary: #2d383f; +$success: #009F3A; +$warning: #FCC800; +$alert: #ff0000; +$accent: #00728E; + +$light-gray: #DADCDC; +$medium-gray: #808080; +$dark-gray: #666666; +$black: #333333; +$white: #ffffff; + +$body-background: #F5F7F7; +$body-color: $black; + +$font-color: #f8f8fd; diff --git a/client/sass/foundation-sites/_foundation-styles.scss b/client/sass/foundation-sites/_foundation-styles.scss new file mode 100644 index 0000000..42a4341 --- /dev/null +++ b/client/sass/foundation-sites/_foundation-styles.scss @@ -0,0 +1,22 @@ +@import "settings"; +@import "~foundation-sites/scss/foundation"; + +// Global styles +@include foundation-global-styles; +@include foundation-forms; +@include foundation-typography; + +// Grids +@include foundation-xy-grid-classes; + +// Helpers +@include foundation-flex-classes; +@include foundation-visibility-classes; +@include foundation-prototype-rounded; +@include foundation-prototype-bordered; +@include foundation-prototype-shadow; +@include foundation-prototype-sizing; +@include foundation-prototype-font-styling; +@include foundation-prototype-spacing; +@include foundation-button; + diff --git a/client/sass/foundation-sites/_settings.scss b/client/sass/foundation-sites/_settings.scss new file mode 100644 index 0000000..90b90c9 --- /dev/null +++ b/client/sass/foundation-sites/_settings.scss @@ -0,0 +1,86 @@ +@import "sass/colors-variables"; +@import 'node_modules/foundation-sites/scss/util/util'; + +// 1. Global +// --------- +$global-font-size: 100%; +$global-lineheight: 1.5; +$global-width: rem-calc(1366); + +$foundation-palette: ( + primary: $primary, + secondary: $secondary, + success: $success, + warning: $warning, + alert: $alert, +); +$light-gray: $light-gray; +$medium-gray: $medium-gray; +$dark-gray: $dark-gray; +$black: $black; +$white: $white; + +$body-background: #FFFFFF; +$body-font-color: $black; +$body-font-family: 'Poppins', "Fira Sans", Arial, "Helvetica Neue", sans-serif; +$global-font-size: 14px; +$global-radius: 4; + +@include add-foundation-colors; + +// 2. Breakpoints +// -------------- +$breakpoints: ( + small: 0, + medium: 641px, + large: 1025px, + xlarge: 1366px, + xxlarge: 1920px, + xxxlarge: 2560px +); +$breakpoints-hidpi: ( + hidpi-1: 1, + hidpi-1-5: 1.5, + hidpi-2: 2, + retina: 2, + hidpi-3: 3 +); +$print-breakpoint: large; +$breakpoint-classes: (small medium large xlarge xxlarge); + +$grid-margin-gutters: ( + small: 10px, + medium: 15px, +); + +// 3. button +// -------------- +$button-margin: 0 0 0 0; +$paragraph-margin-bottom: 0; +$button-palette: ( + primary: #5B6670, + secondary: $secondary, + success: $success, + warning: $warning, + alert: $alert, + accent: $accent, +); +$button-sizes: ( + tiny: 0.6rem, + small: 0.75rem, + default: 14px, + large: 1.25rem, +) !default; +// 4. form +// -------------- +$fieldset-padding: 8px; +$fieldset-margin: 0; +$input-placeholder-color: $light-gray; +$input-border: 1px solid #DADCDC; +$input-radius: 4px; +$input-font-weight: 600; +$input-shadow: none; + +// 4. box-shadow +// -------------- +$prototype-box-shadow: 0 1.5px 3px rgba(0, 0, 0, 0.07); diff --git a/client/src/app/apis/auth.apis.service.ts b/client/src/app/apis/auth.apis.service.ts new file mode 100644 index 0000000..a80e675 --- /dev/null +++ b/client/src/app/apis/auth.apis.service.ts @@ -0,0 +1,39 @@ +import {Injectable} from '@angular/core'; +import {map} from 'rxjs/operators'; +import {ExecuteGraphqlService} from '../services/execute-graphql.service'; +import {Observable} from 'rxjs'; +import {MutationExchangeTokenDocs} from '../graphql/generated/mutations'; +import {ApaleoClient, MutationExchangeTokenArgs, TokenResponse} from '../graphql/generated/graphql'; +import {QueryGetApaleoClientDocs} from '../graphql/generated/queries'; +import {HttpClient} from '@angular/common/http'; + + +@Injectable({ + providedIn: 'root' +}) +export class AuthApisService { + + constructor(private execute: ExecuteGraphqlService, + private http: HttpClient) { + } + + getApaleoClient(): Observable { + return this.execute.runQuery({ + query: QueryGetApaleoClientDocs, + }).pipe(map(({response}) => response)); + } + + + exchangeToken(variables: MutationExchangeTokenArgs): Observable { + return this.execute.runMutation({ + mutation: MutationExchangeTokenDocs, + variables + }).pipe(map(({response}) => response)); + } + + + apaleoLogout(): void { + } + + +} diff --git a/client/src/app/apis/inventory.apis.service.ts b/client/src/app/apis/inventory.apis.service.ts new file mode 100644 index 0000000..96a224d --- /dev/null +++ b/client/src/app/apis/inventory.apis.service.ts @@ -0,0 +1,28 @@ +import {Injectable} from '@angular/core'; +import {map} from 'rxjs/operators'; +import {Observable} from 'rxjs'; +import {HttpClient} from '@angular/common/http'; +import {environment} from '../../environments/environment'; +import {TokenService} from '../services/token.service'; + + +@Injectable({ + providedIn: 'root' +}) +export class InventoryApisService { + + constructor(private http: HttpClient, + private tokenService: TokenService) { + } + + + inventories(): Observable { + return this.http.get(`${environment.apaleoAPI}/inventory/v1/properties`, + { + headers: { + Authorization: `${this.tokenService.getTokenType()} ${this.tokenService.getAccessToken()}` + } + }).pipe(map((x: any) => x?.properties)); + } + +} diff --git a/client/src/app/apis/process.apis.service.ts b/client/src/app/apis/process.apis.service.ts new file mode 100644 index 0000000..85ebda5 --- /dev/null +++ b/client/src/app/apis/process.apis.service.ts @@ -0,0 +1,89 @@ +import {Injectable} from '@angular/core'; +import {map} from 'rxjs/operators'; +import {ExecuteGraphqlService} from '../services/execute-graphql.service'; +import {Observable} from 'rxjs'; +import {MutationStartProcessDocs} from '../graphql/generated/mutations'; +import { + ClvClass, + CustomerLifetimeValue, + IdentifiedGuestSegmentation, + MutationStartProcessArgs, + Process, + QueryGetClvClassListArgs, + QueryGetCustomerLifetimeValueListArgs, + QueryGetProcessStateArgs, + QueryGetStatisticArgs, + QueryGetTotalRecordCountArgs, + Statistic +} from '../graphql/generated/graphql'; +import { + QueryGetClvClassListDocs, + QueryGetCustomerLifetimeValueListDocs, + QueryGetIdentifiedGuestSegmentationDocs, + QueryGetProcessStateDocs, + QueryGetStatisticDocs, + QueryGetTotalRecordCountDocs +} from '../graphql/generated/queries'; + + +@Injectable({ + providedIn: 'root' +}) +export class ProcessApisService { + + constructor(private execute: ExecuteGraphqlService) { + } + + + startProcess(variables: MutationStartProcessArgs): Observable { + return this.execute.runMutation({ + mutation: MutationStartProcessDocs, + variables + }).pipe(map(({response}) => response)); + } + + getProcessState(variables: QueryGetProcessStateArgs): Observable { + return this.execute.runQuery({ + query: QueryGetProcessStateDocs, + variables + }).pipe(map(({response}) => response)); + } + + getTotalRecordCount(variables: QueryGetTotalRecordCountArgs): Observable { + return this.execute.runQuery({ + query: QueryGetTotalRecordCountDocs, + variables + }).pipe(map(({response}) => response)); + } + + + getCustomerLifetimeValueList(variables: QueryGetCustomerLifetimeValueListArgs): Observable> { + return this.execute.runQuery({ + query: QueryGetCustomerLifetimeValueListDocs, + variables + }).pipe(map(({response}) => response)); + } + + getClvClassList(variables: QueryGetClvClassListArgs): Observable> { + return this.execute.runQuery({ + query: QueryGetClvClassListDocs, + variables + }).pipe(map(({response}) => response)); + } + + getIdentifiedGuestSegmentation(variables: QueryGetCustomerLifetimeValueListArgs): Observable> { + return this.execute.runQuery({ + query: QueryGetIdentifiedGuestSegmentationDocs, + variables + }).pipe(map(({response}) => response)); + } + + + getStatistic(variables: QueryGetStatisticArgs): Observable { + return this.execute.runQuery({ + query: QueryGetStatisticDocs, + variables + }).pipe(map(({response}) => response)); + } + +} diff --git a/client/src/app/app.component.scss b/client/src/app/app.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/client/src/app/app.component.ts b/client/src/app/app.component.ts new file mode 100644 index 0000000..1b48229 --- /dev/null +++ b/client/src/app/app.component.ts @@ -0,0 +1,49 @@ +import {Component} from '@angular/core'; +import {AuthConfig, OAuthService} from 'angular-oauth2-oidc'; +import {environment} from '../environments/environment'; +import {ActivatedRoute} from '@angular/router'; + +@Component({ + selector: 'app-root', + template: + ` + + `, + styleUrls: ['./app.component.scss'] +}) +export class AppComponent { + title = 'dataspire-lite'; + + authCodeFlowConfig: AuthConfig = { + // Url of the Identity Provider + issuer: environment.authSetting.issuer, + redirectUri: environment.authSetting.redirectUrl, + loginUrl: 'https://identity.apaleo.com/connect/authorize', + clientId: environment.authSetting.clientId, + responseType: 'code', + oidc: true, + disablePKCE: true, + scope: environment.authSetting.scope, + showDebugInformation: true, + }; + + constructor( + private oauthService: OAuthService, + private route: ActivatedRoute + ) { + const scope: string = this.route.snapshot?.data?.scope?.allowScopeList?.join(' '); + const clientId: string = this.route.snapshot?.data?.scope?.clientId; + this.configure(scope, clientId); + } + + private configure(scope: string, clientId: string): void { + + this.oauthService.configure({ + ...this.authCodeFlowConfig, + scope, + clientId + }); + } + + +} diff --git a/client/src/app/app.module.ts b/client/src/app/app.module.ts new file mode 100644 index 0000000..9c707b0 --- /dev/null +++ b/client/src/app/app.module.ts @@ -0,0 +1,26 @@ +import {NgModule} from '@angular/core'; +import {BrowserModule} from '@angular/platform-browser'; +import {AppRouting} from './app.routing'; +import {AppComponent} from './app.component'; +import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; +import {HttpClientModule} from '@angular/common/http'; +import {OAuthModule} from 'angular-oauth2-oidc'; + +@NgModule({ + declarations: [ + AppComponent, + ], + imports: [ + BrowserModule, + AppRouting, + BrowserAnimationsModule, + HttpClientModule, + OAuthModule.forRoot(), + + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { + +} diff --git a/client/src/app/app.routing.ts b/client/src/app/app.routing.ts new file mode 100644 index 0000000..fcb3f72 --- /dev/null +++ b/client/src/app/app.routing.ts @@ -0,0 +1,39 @@ +import {NgModule} from '@angular/core'; +import {RouterModule, Routes} from '@angular/router'; +import {AppComponent} from './app.component'; +import {ScopeResolver} from './scope.resolver'; + +const routes: Routes = [ + { + component: AppComponent, + path: '', + resolve: { + scope: ScopeResolver + }, + children: + [ + { + path: 'home', + loadChildren: () => import('./modules/home/home.module').then(m => m.HomeModule) + }, + { + path: 'result', + loadChildren: () => import('./modules/analytic-result/analytic-result.module').then(m => m.AnalyticResultModule) + }, + {path: '', redirectTo: '/home', pathMatch: 'full'}, + ], + }, + { + path: 'callback', + loadChildren: () => import('./modules/callback/callback.module').then(m => m.CallbackModule) + + }, + +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes)], + exports: [RouterModule] +}) +export class AppRouting { +} diff --git a/client/src/app/graphql/config/codegen.yml b/client/src/app/graphql/config/codegen.yml new file mode 100644 index 0000000..e13b895 --- /dev/null +++ b/client/src/app/graphql/config/codegen.yml @@ -0,0 +1,29 @@ +schema: + - http://localhost:8000/graphql +overwrite: true +#watch : true +config: + noNamespaces: true +generates: + ./src/app/graphql/generated/graphql.ts: + plugins: + - typescript: + skipTypename: true + avoidOptionals: false + declarationKind: 'interface' + ./src/app/graphql/generated/queries.ts: + documents: src/app/graphql/queries/**/*.graphql + config: + namePrefix: 'Query' + nameSuffix: 'Docs' + namingConvention: keep + plugins: + - typescript-document-nodes + ./src/app/graphql/generated/mutations.ts: + documents: src/app/graphql/mutations/**/*.graphql + config: + namePrefix: 'Mutation' + nameSuffix: 'Docs' + namingConvention: keep + plugins: + - typescript-document-nodes diff --git a/client/src/app/graphql/generated/graphql.ts b/client/src/app/graphql/generated/graphql.ts new file mode 100644 index 0000000..a7d6e24 --- /dev/null +++ b/client/src/app/graphql/generated/graphql.ts @@ -0,0 +1,243 @@ +export type Maybe = T | null; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +/** All built-in and custom scalars, mapped to their actual values */ +export interface Scalars { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + /** Built-in java.math.BigDecimal */ + BigDecimal: any; + /** Long type */ + Long: any; +} + + +export enum ProcessStatusEnum { + Success = 'SUCCESS', + Ready = 'READY', + Processing = 'PROCESSING', + Error = 'ERROR' +} + +export interface Query { + test?: Maybe; + getApaleoClient?: Maybe; + getProcessState?: Maybe; + getCustomerLifetimeValueList?: Maybe>>; + getTotalRecordCount?: Maybe; + getReservationList?: Maybe; + getStatistic?: Maybe; + getIdentifiedGuestSegmentation?: Maybe>>; + getClvClassList?: Maybe>>; +} + + +export interface QueryGetProcessStateArgs { + filter?: Maybe; +} + + +export interface QueryGetCustomerLifetimeValueListArgs { + filter?: Maybe; +} + + +export interface QueryGetTotalRecordCountArgs { + filter?: Maybe; +} + + +export interface QueryGetReservationListArgs { + filter?: Maybe; +} + + +export interface QueryGetStatisticArgs { + filter?: Maybe; +} + + +export interface QueryGetIdentifiedGuestSegmentationArgs { + filter?: Maybe; +} + + +export interface QueryGetClvClassListArgs { + filter?: Maybe; +} + +export interface Address { + countryCode?: Maybe; +} + +export interface ReservationFilter { + hotelIdList: Array>; + refreshToken: Scalars['String']; + pageNumber?: Maybe; + pageSize?: Maybe; +} + +export interface ReservationList { + data?: Maybe>>; + count?: Maybe; +} + +export interface CustomerLifetimeValueFilter { + processId: Scalars['String']; +} + +export interface Process { + id?: Maybe; + status?: Maybe; + message?: Maybe; + recordCount?: Maybe; +} + +export interface Reservation { + id?: Maybe; + bookingId?: Maybe; + status?: Maybe; + arrival?: Maybe; + departure?: Maybe; + created?: Maybe; + adults?: Maybe; + chilrenAgeList?: Maybe>>; + channelCode?: Maybe; + reservationTimeSliceList?: Maybe>>; + room?: Maybe; + guest?: Maybe; + totalGrossAmount?: Maybe; +} + +export interface Statistic { + totalIdentifiedGuest?: Maybe; + totalPotentialVipGuest?: Maybe; + highValueGuest?: Maybe; +} + +export interface ClvType { + name?: Maybe; + value?: Maybe; +} + +export interface ReservationRoom { + id?: Maybe; + roomNumber?: Maybe; + description?: Maybe; + roomGroupId?: Maybe; +} + +export interface TokenRequest { + code?: Maybe; + redirectUrl?: Maybe; + refreshToken?: Maybe; +} + +export interface ProcessInput { + processId?: Maybe; + hotelIdList: Array>; + refreshToken: Scalars['String']; +} + +export interface ProcessStatusFilter { + processId: Scalars['String']; +} + +export interface ReservationTimeSlice { + from?: Maybe; + to?: Maybe; + roomPrice?: Maybe; +} + +export interface Monetary { + grossAmount?: Maybe; + netAmount?: Maybe; + vatType?: Maybe; + vatPercent?: Maybe; + currency?: Maybe; +} + +export interface ClvClass { + name?: Maybe; + typeList?: Maybe>>; +} + +export interface IdentifiedGuestSegmentation { + segment?: Maybe; + value?: Maybe; +} + +export interface ProcessDetailsFilter { + processId: Scalars['String']; +} + + +export interface StatisticFilter { + processId: Scalars['String']; +} + +export interface ReservationGuest { + firstName?: Maybe; + lastName?: Maybe; + email?: Maybe; + address?: Maybe
; +} + +export interface IdentifiedGuestSegmentationFilter { + processId: Scalars['String']; +} + +export interface ApaleoClient { + allowScopeList?: Maybe>>; + clientId?: Maybe; +} + +export interface CustomerLifetimeValue { + firstName?: Maybe; + lastName?: Maybe; + email?: Maybe; + guestId?: Maybe; + ltvClass?: Maybe; + low?: Maybe; + mid?: Maybe; + high?: Maybe; + type?: Maybe; +} + +export interface TokenResponse { + idToken?: Maybe; + accessToken?: Maybe; + expiresIn?: Maybe; + tokenType?: Maybe; + refreshToken?: Maybe; +} + + +export interface ClvClassFilter { + processId: Scalars['String']; +} + +export interface Mutation { + exchangeToken?: Maybe; + renewToken?: Maybe; + startProcess?: Maybe; +} + + +export interface MutationExchangeTokenArgs { + input?: Maybe; +} + + +export interface MutationRenewTokenArgs { + input?: Maybe; +} + + +export interface MutationStartProcessArgs { + input?: Maybe; +} diff --git a/client/src/app/graphql/generated/mutations.ts b/client/src/app/graphql/generated/mutations.ts new file mode 100644 index 0000000..fc0777c --- /dev/null +++ b/client/src/app/graphql/generated/mutations.ts @@ -0,0 +1,22 @@ +import gql from 'graphql-tag'; + +export const MutationExchangeTokenDocs = gql` + mutation ExchangeToken($input: TokenRequest) { + response: exchangeToken(input: $input) { + idToken + accessToken + expiresIn + tokenType + refreshToken + } +} + `; +export const MutationStartProcessDocs = gql` + mutation StartProcess($input: ProcessInput) { + response: startProcess(input: $input) { + id + status + message + } +} + `; \ No newline at end of file diff --git a/client/src/app/graphql/generated/queries.ts b/client/src/app/graphql/generated/queries.ts new file mode 100644 index 0000000..832bf1f --- /dev/null +++ b/client/src/app/graphql/generated/queries.ts @@ -0,0 +1,70 @@ +import gql from 'graphql-tag'; + +export const QueryGetApaleoClientDocs = gql` + query GetApaleoClient { + response: getApaleoClient { + allowScopeList + clientId + } +} + `; +export const QueryGetClvClassListDocs = gql` + query GetClvClassList($filter: ClvClassFilter) { + response: getClvClassList(filter: $filter) { + name + typeList { + name + value + } + } +} + `; +export const QueryGetCustomerLifetimeValueListDocs = gql` + query GetCustomerLifetimeValueList($filter: CustomerLifetimeValueFilter) { + response: getCustomerLifetimeValueList(filter: $filter) { + email + low + mid + high + type + } +} + `; +export const QueryGetIdentifiedGuestSegmentationDocs = gql` + query GetIdentifiedGuestSegmentation($filter: IdentifiedGuestSegmentationFilter) { + response: getIdentifiedGuestSegmentation(filter: $filter) { + segment + value + } +} + `; +export const QueryGetProcessStateDocs = gql` + query GetProcessState($filter: ProcessStatusFilter) { + response: getProcessState(filter: $filter) { + id + status + message + } +} + `; +export const QueryGetReservationListDocs = gql` + query GetReservationList($filter: ReservationFilter) { + response: getReservationList(filter: $filter) { + count + } +} + `; +export const QueryGetStatisticDocs = gql` + query GetStatistic($filter: StatisticFilter) { + response: getStatistic(filter: $filter) { + totalIdentifiedGuest + totalPotentialVipGuest + highValueGuest + } +} + `; +export const QueryGetTotalRecordCountDocs = gql` + query GetTotalRecordCount($filter: ProcessDetailsFilter) { + response: getTotalRecordCount(filter: $filter) +} + `; \ No newline at end of file diff --git a/client/src/app/graphql/mutations/exchangeToken.graphql b/client/src/app/graphql/mutations/exchangeToken.graphql new file mode 100644 index 0000000..b269441 --- /dev/null +++ b/client/src/app/graphql/mutations/exchangeToken.graphql @@ -0,0 +1,9 @@ +mutation ExchangeToken($input: TokenRequest) { + response: exchangeToken(input: $input) { + idToken + accessToken + expiresIn + tokenType + refreshToken + } +} diff --git a/client/src/app/graphql/mutations/startProcess.graphql b/client/src/app/graphql/mutations/startProcess.graphql new file mode 100644 index 0000000..77f86f9 --- /dev/null +++ b/client/src/app/graphql/mutations/startProcess.graphql @@ -0,0 +1,7 @@ +mutation StartProcess($input: ProcessInput) { + response: startProcess(input: $input) { + id + status + message + } +} diff --git a/client/src/app/graphql/queries/getApaleoClient.graphql b/client/src/app/graphql/queries/getApaleoClient.graphql new file mode 100644 index 0000000..fa4df55 --- /dev/null +++ b/client/src/app/graphql/queries/getApaleoClient.graphql @@ -0,0 +1,6 @@ +query GetApaleoClient { + response: getApaleoClient { + allowScopeList + clientId + } +} diff --git a/client/src/app/graphql/queries/getClvClassList.graphql b/client/src/app/graphql/queries/getClvClassList.graphql new file mode 100644 index 0000000..9e52023 --- /dev/null +++ b/client/src/app/graphql/queries/getClvClassList.graphql @@ -0,0 +1,9 @@ +query GetClvClassList($filter: ClvClassFilter) { + response: getClvClassList(filter: $filter) { + name + typeList { + name + value + } + } +} diff --git a/client/src/app/graphql/queries/getCustomerLifetimeValueList.graphql b/client/src/app/graphql/queries/getCustomerLifetimeValueList.graphql new file mode 100644 index 0000000..251ee10 --- /dev/null +++ b/client/src/app/graphql/queries/getCustomerLifetimeValueList.graphql @@ -0,0 +1,10 @@ + +query GetCustomerLifetimeValueList($filter: CustomerLifetimeValueFilter) { + response: getCustomerLifetimeValueList(filter: $filter) { + email + low + mid + high + type + } +} diff --git a/client/src/app/graphql/queries/getIdentifiedGuestSegmentation.graphql b/client/src/app/graphql/queries/getIdentifiedGuestSegmentation.graphql new file mode 100644 index 0000000..6e98f9d --- /dev/null +++ b/client/src/app/graphql/queries/getIdentifiedGuestSegmentation.graphql @@ -0,0 +1,6 @@ +query GetIdentifiedGuestSegmentation($filter: IdentifiedGuestSegmentationFilter) { + response: getIdentifiedGuestSegmentation(filter: $filter) { + segment + value + } +} diff --git a/client/src/app/graphql/queries/getProcessState.graphql b/client/src/app/graphql/queries/getProcessState.graphql new file mode 100644 index 0000000..8c8df2d --- /dev/null +++ b/client/src/app/graphql/queries/getProcessState.graphql @@ -0,0 +1,7 @@ +query GetProcessState($filter: ProcessStatusFilter) { + response: getProcessState(filter: $filter) { + id + status + message + } +} diff --git a/client/src/app/graphql/queries/getReservationList.graphql b/client/src/app/graphql/queries/getReservationList.graphql new file mode 100644 index 0000000..d56ecd0 --- /dev/null +++ b/client/src/app/graphql/queries/getReservationList.graphql @@ -0,0 +1,5 @@ +query GetReservationList($filter: ReservationFilter) { + response: getReservationList(filter: $filter) { + count + } +} diff --git a/client/src/app/graphql/queries/getStatistic.graphql b/client/src/app/graphql/queries/getStatistic.graphql new file mode 100644 index 0000000..345934b --- /dev/null +++ b/client/src/app/graphql/queries/getStatistic.graphql @@ -0,0 +1,7 @@ +query GetStatistic($filter: StatisticFilter) { + response: getStatistic(filter: $filter) { + totalIdentifiedGuest + totalPotentialVipGuest + highValueGuest + } +} diff --git a/client/src/app/graphql/queries/getTotalRecordCount.graphql b/client/src/app/graphql/queries/getTotalRecordCount.graphql new file mode 100644 index 0000000..673a127 --- /dev/null +++ b/client/src/app/graphql/queries/getTotalRecordCount.graphql @@ -0,0 +1,3 @@ +query GetTotalRecordCount($filter: ProcessDetailsFilter) { + response: getTotalRecordCount(filter: $filter) +} diff --git a/client/src/app/modules/analytic-result/analytic-result.component.scss b/client/src/app/modules/analytic-result/analytic-result.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/client/src/app/modules/analytic-result/analytic-result.component.ts b/client/src/app/modules/analytic-result/analytic-result.component.ts new file mode 100644 index 0000000..9e9838e --- /dev/null +++ b/client/src/app/modules/analytic-result/analytic-result.component.ts @@ -0,0 +1,69 @@ +import {ChangeDetectionStrategy, Component, ElementRef, Inject, NgZone, PLATFORM_ID, ViewChild} from '@angular/core'; +import html2canvas from 'html2canvas'; +import jsPDF from 'jspdf'; +import {isPlatformBrowser} from '@angular/common'; + +@Component({ + selector: 'app-analytic-result', + template: ` +
+ + +
+ +
+
+ +
+ + home + Back to home + + + +
+
+
+ +
+ `, + styleUrls: ['./analytic-result.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AnalyticResultComponent { + @ViewChild('pageEle') ref: ElementRef; + + constructor(@Inject(PLATFORM_ID) private platformId, private zone: NgZone) { + } + + public openPDF(): void { + const DATA = this.ref.nativeElement; + + if (isPlatformBrowser(this.platformId)) { + this.zone.runOutsideAngular(() => { + html2canvas(DATA, {backgroundColor: '#263138'}).then(canvas => { + + const fileWidth = 208; + const fileHeight = canvas.height * fileWidth / canvas.width; + + const FILEURI = canvas.toDataURL('image/png'); + const PDF = new jsPDF('p', 'mm', 'a4'); + const position = 0; + PDF.addImage(FILEURI, 'JPEG', 0, position, fileWidth, fileHeight); + + PDF.save('dataspire-lite.pdf'); + }); + }); + } + + } +} diff --git a/client/src/app/modules/analytic-result/analytic-result.module.ts b/client/src/app/modules/analytic-result/analytic-result.module.ts new file mode 100644 index 0000000..3c624a4 --- /dev/null +++ b/client/src/app/modules/analytic-result/analytic-result.module.ts @@ -0,0 +1,31 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule, Routes} from '@angular/router'; +import {AnalyticResultComponent} from './analytic-result.component'; +import {ChartModule} from '../../shared/features/chart/chart.module'; +import {MatButtonModule} from '@angular/material/button'; +import {MatIconModule} from '@angular/material/icon'; +import {MatCardModule} from '@angular/material/card'; +import {DashboardModule} from "../../shared/features/dashboard/dashboard.module"; + + +const routes: Routes = [ + {path: '', component: AnalyticResultComponent,}, +]; + +@NgModule({ + declarations: [ + AnalyticResultComponent + ], + imports: [ + CommonModule, + ChartModule, + RouterModule.forChild(routes), + MatButtonModule, + MatIconModule, + MatCardModule, + DashboardModule + ] +}) +export class AnalyticResultModule { +} diff --git a/client/src/app/modules/callback/callback.component.scss b/client/src/app/modules/callback/callback.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/client/src/app/modules/callback/callback.component.ts b/client/src/app/modules/callback/callback.component.ts new file mode 100644 index 0000000..6231288 --- /dev/null +++ b/client/src/app/modules/callback/callback.component.ts @@ -0,0 +1,40 @@ +import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core'; +import {OAuthService} from 'angular-oauth2-oidc'; +import {ActivatedRoute} from '@angular/router'; +import {CookieService} from 'ngx-cookie-service'; + +@Component({ + selector: 'app-callback', + template: ` +

+ callback works! +

+ + home + `, + styleUrls: ['./callback.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class CallbackComponent implements OnInit { + + + constructor( + private oauthService: OAuthService, + private route: ActivatedRoute, + private cookieService: CookieService, + ) { + } + + ngOnInit(): void { + + const {code, state} = this.route.snapshot.queryParams; + this.cookieService.set('auth_code', code); + this.cookieService.set('auth_state', state); + window.close(); + } + + + getToken(): void { + console.log(this.oauthService.getAccessToken()); + } +} diff --git a/client/src/app/modules/callback/callback.module.ts b/client/src/app/modules/callback/callback.module.ts new file mode 100644 index 0000000..7c78e46 --- /dev/null +++ b/client/src/app/modules/callback/callback.module.ts @@ -0,0 +1,19 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule, Routes} from '@angular/router'; +import {CallbackComponent} from './callback.component'; + + +const routes: Routes = [ + {path: '', component: CallbackComponent}, +]; + +@NgModule({ + declarations: [], + imports: [ + CommonModule, + RouterModule.forChild(routes) + ] +}) +export class CallbackModule { +} diff --git a/client/src/app/modules/home/components/authentication-flow/authentication-flow.component.scss b/client/src/app/modules/home/components/authentication-flow/authentication-flow.component.scss new file mode 100644 index 0000000..58529d2 --- /dev/null +++ b/client/src/app/modules/home/components/authentication-flow/authentication-flow.component.scss @@ -0,0 +1,10 @@ +img { + width: 200px; +} + +.custom-step-container { + min-height: calc(100vh - 64px - 72px - 4rem - 24px); + display: flex; + flex-direction: column; + justify-content: space-between; +} diff --git a/client/src/app/modules/home/components/authentication-flow/authentication-flow.component.ts b/client/src/app/modules/home/components/authentication-flow/authentication-flow.component.ts new file mode 100644 index 0000000..4bd4ced --- /dev/null +++ b/client/src/app/modules/home/components/authentication-flow/authentication-flow.component.ts @@ -0,0 +1,158 @@ +import {ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output} from '@angular/core'; +import {OAuthService} from 'angular-oauth2-oidc'; +import {TokenService} from '../../../../services/token.service'; +import {AuthApisService} from '../../../../apis/auth.apis.service'; +import {InventoryApisService} from '../../../../apis/inventory.apis.service'; +import {CookieService} from 'ngx-cookie-service'; +import {environment} from '../../../../../environments/environment'; +import {switchMap, tap} from 'rxjs/operators'; +import {Process, TokenResponse} from '../../../../graphql/generated/graphql'; +import {FormControl} from '@angular/forms'; +import {ProcessApisService} from '../../../../apis/process.apis.service'; +import {LoadingService} from '../../../../services/loading.service'; +import {ActivatedRoute} from '@angular/router'; +import {noop, Observable} from 'rxjs'; + + +@Component({ + selector: 'app-authentication-flow', + template: ` +
+
+
+

+ Press Authorize button below and login to your Apaleo account. Upon authenticated successfully, you shall be + able + to select which hotel data to be submit to AI model for processing. By default, all hotels data is selected. +

+
+
+
+ logo apaleo + +
+
+ + Select hotel(s) + + + {{i.name}} + + + + +
+
+
+
+ + Logout + + +
+
+ `, + styleUrls: ['./authentication-flow.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class AuthenticationFlowComponent implements OnInit { + + @Output() nextStep = new EventEmitter(); + + properties: { id: string, name: string }[]; + hotelId = new FormControl(null); + scope: string; + token$ = this.tokenService.token$; + isLoading$: Observable = this.loadingService.isLoading$; + + isProcess = false; + + constructor( + private oauthService: OAuthService, + private tokenService: TokenService, + private authService: AuthApisService, + private inventoryService: InventoryApisService, + private cookieService: CookieService, + private processApisService: ProcessApisService, + private loadingService: LoadingService, + private route: ActivatedRoute + ) { + this.scope = this.route.snapshot?.data?.scope?.allowScopeList?.join(' '); + + } + + ngOnInit(): void { + } + + login(): void { + + this.loadingService.setLoading(true); + this.oauthService.initImplicitFlowInPopup({height: 600, width: 600}) + .then() + .catch() + .finally(() => { + const code = this.cookieService.get('auth_code'); + this.authService.exchangeToken({input: {code, redirectUrl: environment.authSetting.redirectUrl}}) + .pipe( + tap(({accessToken, expiresIn, idToken, refreshToken, tokenType}: TokenResponse) => { + this.tokenService.setToken({ + access_token: accessToken, + refresh_token: refreshToken, + scope: this.scope, + token_type: tokenType, + expires_in: expiresIn, + id_token: idToken + }); + this.cookieService.delete('auth_code'); + }), + switchMap(() => this.inventoryService.inventories()) + ).subscribe(res => { + this.properties = res; + this.hotelId.setValue(res.map(x => x.id)); + this.loadingService.setLoading(false); + }); + }); + } + + startProcess(): void { + this.isProcess = true; + this.processApisService.startProcess({ + input: { + hotelIdList: this.hotelId.value, + refreshToken: this.tokenService.getRefreshToken(), + processId: '123' + } + }).subscribe( + (value) => this.nextStep.emit(value), + noop, + () => this.isProcess = false); + + } +} diff --git a/client/src/app/modules/home/components/processing-flow/processing-flow.component.scss b/client/src/app/modules/home/components/processing-flow/processing-flow.component.scss new file mode 100644 index 0000000..58529d2 --- /dev/null +++ b/client/src/app/modules/home/components/processing-flow/processing-flow.component.scss @@ -0,0 +1,10 @@ +img { + width: 200px; +} + +.custom-step-container { + min-height: calc(100vh - 64px - 72px - 4rem - 24px); + display: flex; + flex-direction: column; + justify-content: space-between; +} diff --git a/client/src/app/modules/home/components/processing-flow/processing-flow.component.ts b/client/src/app/modules/home/components/processing-flow/processing-flow.component.ts new file mode 100644 index 0000000..f581c61 --- /dev/null +++ b/client/src/app/modules/home/components/processing-flow/processing-flow.component.ts @@ -0,0 +1,119 @@ +import {ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output} from '@angular/core'; +import {ProcessApisService} from '../../../../apis/process.apis.service'; +import {ActivatedRoute} from '@angular/router'; +import {interval, Observable} from 'rxjs'; +import {Process, ProcessStatusEnum} from '../../../../graphql/generated/graphql'; +import {shareReplay, startWith, switchMap, takeWhile} from 'rxjs/operators'; + +@Component({ + selector: 'app-processing-flow', + template: ` +
+
+
+

+ Hotel Data is being processed by AI Models : Guest Segmentation, Customer Lifetime Value Classification, VIP + Guest Prediction. Please try to press Refresh button after 1 minute to check if the result is ready. +

+
+
+
+ process +
+
+

{{process?.status}}

+ + check + + + + loop + +
+

{{process?.message}}

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

Loading

+ + loop + +
+
+ `, + styleUrls: ['./processing-flow.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ProcessingFlowComponent implements OnInit { + @Output() nextStep = new EventEmitter(); + @Output() backStep = new EventEmitter(); + + process$: Observable; + processId: string; + + processStatus = ProcessStatusEnum; + + constructor( + private processApiService: ProcessApisService, + private route: ActivatedRoute) { + } + + ngOnInit(): void { + this.processId = this.route.snapshot?.queryParams?.id; + this.process$ = interval(1000).pipe( + startWith(0), + switchMap(() => this.processApiService.getProcessState({filter: {processId: this.processId}})), + takeWhile(val => val?.status !== this.processStatus.Ready, true), + shareReplay(3) + ); + + } + + refresh(): void { + this.process$ = interval(2000).pipe( + startWith(0), + switchMap(() => this.processApiService.getProcessState({filter: {processId: this.processId}})), + takeWhile(val => val?.status !== this.processStatus.Ready, true), + shareReplay(3) + ); + } +} diff --git a/client/src/app/modules/home/components/stepper/stepper.component.scss b/client/src/app/modules/home/components/stepper/stepper.component.scss new file mode 100644 index 0000000..dc605b9 --- /dev/null +++ b/client/src/app/modules/home/components/stepper/stepper.component.scss @@ -0,0 +1,24 @@ +.container { + height: 100%; + //height: calc(100% - 64px); + //@media (max-width: 599px) { + // height: calc(100% - 56px); + // + //} + + &.stepper { + ::ng-deep { + .mat-step-header { + pointer-events: none !important; + } + + .mat-step-label { + font-weight: bold; + } + } + } +} + +.grid-container { + //height: calc(100vh - 4rem - 64px); +} diff --git a/client/src/app/modules/home/components/stepper/stepper.component.ts b/client/src/app/modules/home/components/stepper/stepper.component.ts new file mode 100644 index 0000000..61ae1e1 --- /dev/null +++ b/client/src/app/modules/home/components/stepper/stepper.component.ts @@ -0,0 +1,121 @@ +import {ChangeDetectionStrategy, Component, ElementRef, OnInit, ViewChild} from '@angular/core'; +import {Process} from '../../../../graphql/generated/graphql'; +import {ActivatedRoute, Router} from '@angular/router'; +import {AppRouterService} from '../../../../services/app-router.service'; +import {StepperSelectionEvent} from '@angular/cdk/stepper'; +import {Observable} from 'rxjs'; +import {map} from 'rxjs/operators'; +import {environment} from '../../../../../environments/environment'; +import {LoadingService} from '../../../../services/loading.service'; + +@Component({ + selector: 'app-stepper', + template: ` + + `, + styleUrls: ['./stepper.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class StepperComponent implements OnInit { + isLinear = false; + process: Process; + stepperIdx$: Observable = this.route.queryParams + .pipe( + map(x => { + const step = (+x.step || 0); + if (step > 2) { + return 2; + } else if (step < 0) { + return 0; + } else { + return step; + } + }), + ); + file$: Observable = this.route.queryParams.pipe(map(x => `${environment.apiURL}/download/process/${x?.id}`)); + id$: Observable = this.route.queryParams.pipe(map(x => `${x?.id}`)); + @ViewChild('pageEle') ref: ElementRef; + + constructor(private router: Router, + private route: ActivatedRoute, + private loadingService: LoadingService, + private appRouterService: AppRouterService) { + } + + ngOnInit(): void { + + } + + handleStep(evt: Process, stepIdx: number = 0): void { + // this.stepperIdx = stepIdx; + this.process = evt; + this.appRouterService.updateRouteQueryParams({step: stepIdx, id: evt.id}); + } + + handleStepResult(stepIdx: number): void { + // this.stepperIdx = stepIdx; + const queryParams = this.route.snapshot.queryParams; + this.appRouterService.updateRouteQueryParams({...queryParams, step: stepIdx}); + } + + changeStep(evt: StepperSelectionEvent): void { + // this.stepperIdx = evt.selectedIndex; + } + + backStep(stepIdx: number): void { + // this.stepperIdx = stepIdx; + const queryParams = this.route.snapshot.queryParams; + this.appRouterService.updateRouteQueryParams({...queryParams, step: stepIdx}); + } +} diff --git a/client/src/app/modules/home/home.component.scss b/client/src/app/modules/home/home.component.scss new file mode 100644 index 0000000..15c71c6 --- /dev/null +++ b/client/src/app/modules/home/home.component.scss @@ -0,0 +1,31 @@ +.sidenav-container { + height: 100%; +} + +.sidenav { + width: 200px; +} + +.sidenav .mat-toolbar { + background: inherit; +} + +.mat-toolbar.mat-primary { + position: sticky; + top: 0; + z-index: 1; +} + +.lgo { + height: 60px; +} + +.space { + flex: 1; +} + +.h2, +.h4 { + color: #FFFFFF; +} + diff --git a/client/src/app/modules/home/home.component.ts b/client/src/app/modules/home/home.component.ts new file mode 100644 index 0000000..e593230 --- /dev/null +++ b/client/src/app/modules/home/home.component.ts @@ -0,0 +1,46 @@ +import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core'; +import {LoadingService} from '../../services/loading.service'; +import {Observable} from 'rxjs'; + +@Component({ + selector: 'app-home', + template: ` + + + +
+
+ + {{title}} + lite +
+
+ HCG logo +
+
+ +
+
+ +
+
+
+
+ + `, + styleUrls: ['./home.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class HomeComponent implements OnInit { + title = 'Dataspire'; + isLoading$: Observable = this.loadingService.isLoading$; + + constructor(private loadingService: LoadingService, + ) { + } + + ngOnInit(): void { + } + + +} diff --git a/client/src/app/modules/home/home.module.ts b/client/src/app/modules/home/home.module.ts new file mode 100644 index 0000000..2c7a9f9 --- /dev/null +++ b/client/src/app/modules/home/home.module.ts @@ -0,0 +1,67 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {RouterModule, Routes} from '@angular/router'; +import {HomeComponent} from './home.component'; +import {MatGridListModule} from '@angular/material/grid-list'; +import {MatCardModule} from '@angular/material/card'; +import {MatMenuModule} from '@angular/material/menu'; +import {MatIconModule} from '@angular/material/icon'; +import {MatButtonModule} from '@angular/material/button'; +import {LayoutModule} from '@angular/cdk/layout'; +import {MatToolbarModule} from '@angular/material/toolbar'; +import {MatSidenavModule} from '@angular/material/sidenav'; +import {MatListModule} from '@angular/material/list'; +import {MatStepperModule} from '@angular/material/stepper'; +import {MatFormFieldModule} from '@angular/material/form-field'; +import {ChartModule} from '../../shared/features/chart/chart.module'; +import {MatSelectModule} from '@angular/material/select'; +import {StepperComponent} from './components/stepper/stepper.component'; +import {AuthenticationFlowComponent} from './components/authentication-flow/authentication-flow.component'; +import {ReactiveFormsModule} from '@angular/forms'; +import {MatProgressBarModule} from '@angular/material/progress-bar'; +import {ScopeResolver} from '../../scope.resolver'; +import {ProcessingFlowComponent} from './components/processing-flow/processing-flow.component'; +import {DashboardModule} from '../../shared/features/dashboard/dashboard.module'; + + +const routes: Routes = [ + { + path: '', + component: HomeComponent, + resolve: { + scope: ScopeResolver + }, + }, +]; + +@NgModule({ + declarations: [ + HomeComponent, + StepperComponent, + AuthenticationFlowComponent, + ProcessingFlowComponent, + ], + imports: [ + CommonModule, + MatGridListModule, + MatCardModule, + MatMenuModule, + MatIconModule, + MatButtonModule, + LayoutModule, + MatToolbarModule, + MatProgressBarModule, + MatSidenavModule, + MatListModule, + MatStepperModule, + MatFormFieldModule, + ChartModule, + MatSelectModule, + ReactiveFormsModule, + RouterModule.forChild(routes), + DashboardModule, + + ] +}) +export class HomeModule { +} diff --git a/client/src/app/scope.resolver.ts b/client/src/app/scope.resolver.ts new file mode 100644 index 0000000..01fa71d --- /dev/null +++ b/client/src/app/scope.resolver.ts @@ -0,0 +1,17 @@ +import {Injectable} from '@angular/core'; +import {ActivatedRouteSnapshot, Resolve, RouterStateSnapshot} from '@angular/router'; +import {Observable} from 'rxjs'; +import {AuthApisService} from './apis/auth.apis.service'; +import {ApaleoClient} from './graphql/generated/graphql'; + +@Injectable({ + providedIn: 'root' +}) +export class ScopeResolver implements Resolve { + constructor(private authService: AuthApisService) { + } + + resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { + return this.authService.getApaleoClient(); + } +} diff --git a/client/src/app/services/app-router.service.ts b/client/src/app/services/app-router.service.ts new file mode 100644 index 0000000..4addb64 --- /dev/null +++ b/client/src/app/services/app-router.service.ts @@ -0,0 +1,22 @@ +import {Injectable} from '@angular/core'; +import {ActivatedRoute, Router} from '@angular/router'; + +@Injectable({ + providedIn: 'root' +}) +export class AppRouterService { + + constructor(private router: Router, private route: ActivatedRoute) { + } + + updateRouteQueryParams(queryParams): void { + this.router.navigate( + [], + { + relativeTo: this.route, + queryParams, + queryParamsHandling: 'merge', + }); + } + +} diff --git a/client/src/app/services/execute-graphql.service.ts b/client/src/app/services/execute-graphql.service.ts new file mode 100644 index 0000000..1adaecc --- /dev/null +++ b/client/src/app/services/execute-graphql.service.ts @@ -0,0 +1,59 @@ +import {Injectable} from '@angular/core'; +import {map} from 'rxjs/operators'; +import {DocumentNode} from 'graphql'; +import {HttpClient, HttpHeaders} from '@angular/common/http'; +import {environment} from '../../environments/environment'; + + +interface FetchQueryOptions { + query: DocumentNode; + variables?: any; +} + +interface MutationOptions { + mutation: DocumentNode; + variables?: any; +} + +@Injectable({ + providedIn: 'root' +}) +export class ExecuteGraphqlService { + private httpOptions = { + headers: new HttpHeaders({ + 'Content-Type': 'application/json', + Accept: 'application/json', + }) + }; + + private api = `${environment.apiURL}/graphql`; + + constructor(private http: HttpClient) { + } + + // tslint:disable-next-line:typedef + runQuery({query, variables}: FetchQueryOptions, customHttpHeaders?: HttpHeaders) { + const httpOptions = customHttpHeaders + ? {headers: customHttpHeaders} + : {...this.httpOptions}; + + return this.http.post(this.api, { + query: query.loc.source.body, + variables + }, httpOptions) + .pipe(map(({data}: any) => data)); + } + + // tslint:disable-next-line:typedef + runMutation({mutation, variables}: MutationOptions, customHttpHeaders?: HttpHeaders) { + const httpOptions = customHttpHeaders + ? {headers: customHttpHeaders} + : {...this.httpOptions}; + + return this.http.post(this.api, { + query: mutation.loc.source.body, + variables + }, httpOptions) + .pipe(map(({data}: any) => data)); + } +} diff --git a/client/src/app/services/loading.service.ts b/client/src/app/services/loading.service.ts new file mode 100644 index 0000000..802a60c --- /dev/null +++ b/client/src/app/services/loading.service.ts @@ -0,0 +1,18 @@ +import {Injectable} from '@angular/core'; +import {BehaviorSubject, Observable} from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class LoadingService { + + private isLoading = new BehaviorSubject(false); + isLoading$: Observable = this.isLoading.asObservable(); + + constructor() { + } + + setLoading(state: boolean): void { + this.isLoading.next(state); + } +} diff --git a/client/src/app/services/token.service.ts b/client/src/app/services/token.service.ts new file mode 100644 index 0000000..ac27472 --- /dev/null +++ b/client/src/app/services/token.service.ts @@ -0,0 +1,24 @@ +import {Injectable} from '@angular/core'; +import {BehaviorSubject, Observable} from 'rxjs'; +import {TokenResponse} from 'angular-oauth2-oidc'; + +@Injectable({ + providedIn: 'root' +}) +export class TokenService { + + private token = new BehaviorSubject(null); + token$: Observable = this.token.asObservable(); + + constructor() { + } + + setToken(res: TokenResponse): void { + this.token.next(res); + } + + getAccessToken = (): string => this.token?.value?.access_token; + getRefreshToken = (): string => this.token?.value?.refresh_token; + getTokenType = (): string => this.token?.value?.token_type; + +} diff --git a/client/src/app/shared/features/chart/chart.module.ts b/client/src/app/shared/features/chart/chart.module.ts new file mode 100644 index 0000000..fed0356 --- /dev/null +++ b/client/src/app/shared/features/chart/chart.module.ts @@ -0,0 +1,15 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {ColumnComponent} from './components/column/column.component'; +import {PieComponent} from './components/pie/pie.component'; + + +@NgModule({ + declarations: [ColumnComponent, PieComponent], + imports: [ + CommonModule + ], + exports: [ColumnComponent, PieComponent] +}) +export class ChartModule { +} diff --git a/client/src/app/shared/features/chart/components/column/column.component.scss b/client/src/app/shared/features/chart/components/column/column.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/client/src/app/shared/features/chart/components/column/column.component.ts b/client/src/app/shared/features/chart/components/column/column.component.ts new file mode 100644 index 0000000..8005877 --- /dev/null +++ b/client/src/app/shared/features/chart/components/column/column.component.ts @@ -0,0 +1,166 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + Component, + ElementRef, + Inject, + Input, + NgZone, + OnChanges, + OnDestroy, + OnInit, + PLATFORM_ID, + SimpleChanges, + ViewChild +} from '@angular/core'; +import {isPlatformBrowser} from '@angular/common'; + +import * as am4core from '@amcharts/amcharts4/core'; +import * as am4charts from '@amcharts/amcharts4/charts'; + +@Component({ + selector: 'app-column', + template: ` +
+ `, + styleUrls: ['./column.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class ColumnComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy { + + @ViewChild('chartEle') chartEle: ElementRef; + @Input() height = 350; + @Input() data: Array<{ + category: string; + first: number; + second: number; + }>; + + private chart: am4charts.XYChart; + + constructor(@Inject(PLATFORM_ID) private platformId, private zone: NgZone) { + } + + // Run the function only in the browser + browserOnly = (f: () => void): void => { + if (isPlatformBrowser(this.platformId)) { + this.zone.runOutsideAngular(() => { + f(); + }); + } + } + + ngOnInit(): void { + } + + + ngOnChanges({data}: SimpleChanges): void { + this.browserOnly(() => { + if (this.chart && data.currentValue) { + this.chart.data = data.currentValue; + } + }); + } + + ngAfterViewInit(): void { + this.browserOnly(() => { + const ele = this.chartEle.nativeElement; + const chart = am4core.create(ele, am4charts.XYChart); + + chart.colors.step = 2; + + chart.legend = new am4charts.Legend(); + chart.legend.position = 'right'; + chart.legend.marginLeft = 20; + chart.legend.labels.template.maxWidth = 95; + + const xAxis = chart.xAxes.push(new am4charts.CategoryAxis()); + xAxis.dataFields.category = 'category'; + xAxis.renderer.cellStartLocation = 0.1; + xAxis.renderer.cellEndLocation = 0.9; + xAxis.renderer.grid.template.location = 0; + + + const yAxis = chart.yAxes.push(new am4charts.ValueAxis()); + yAxis.min = 0; + + function createSeries(value, name): am4charts.ColumnSeries { + const series = chart.series.push(new am4charts.ColumnSeries()); + series.dataFields.valueY = value; + series.dataFields.categoryX = 'category'; + series.name = name; + + // series.events.on('hidden', arrangeColumns); + // series.events.on('shown', arrangeColumns); + + const bullet = series.bullets.push(new am4charts.LabelBullet()); + bullet.interactionsEnabled = false; + bullet.dy = 30; + bullet.label.text = '{valueY}'; + bullet.label.fill = am4core.color('#ffffff'); + + return series; + } + + createSeries('first', '1st-Time Guest'); + createSeries('second', 'Returning Guest'); + + function arrangeColumns(): void { + + const series = chart.series.getIndex(0); + + const w = 1 - xAxis.renderer.cellStartLocation - (1 - xAxis.renderer.cellEndLocation); + if (series.dataItems.length > 1) { + const x0 = xAxis.getX(series.dataItems.getIndex(0), 'categoryX'); + const x1 = xAxis.getX(series.dataItems.getIndex(1), 'categoryX'); + const delta = ((x1 - x0) / chart.series.length) * w; + if (am4core.isNumber(delta)) { + const middle = chart.series.length / 2; + + let newIndex = 0; + chart.series.each((series) => { + if (!series.isHidden && !series.isHiding) { + series.dummyData = newIndex; + newIndex++; + } else { + series.dummyData = chart.series.indexOf(series); + } + }); + const visibleCount = newIndex; + const newMiddle = visibleCount / 2; + + chart.series.each((series) => { + const trueIndex = chart.series.indexOf(series); + const newIndex = series.dummyData; + + const dx = (newIndex - trueIndex + middle - newMiddle) * delta; + + series.animate({property: 'dx', to: dx}, series.interpolationDuration, series.interpolationEasing); + series.bulletsContainer.animate({ + property: 'dx', + to: dx + }, series.interpolationDuration, series.interpolationEasing); + }); + } + } + } + +// Cursor + chart.cursor = new am4charts.XYCursor(); + chart.cursor.behavior = 'panX'; + chart.data = this.data; + this.chart = chart; + + }); + } + + + ngOnDestroy(): void { + // Clean up chart when the component is removed + this.browserOnly(() => { + if (this.chart) { + this.chart.dispose(); + } + }); + } +} diff --git a/client/src/app/shared/features/chart/components/pie/pie.component.scss b/client/src/app/shared/features/chart/components/pie/pie.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/client/src/app/shared/features/chart/components/pie/pie.component.ts b/client/src/app/shared/features/chart/components/pie/pie.component.ts new file mode 100644 index 0000000..3e2b563 --- /dev/null +++ b/client/src/app/shared/features/chart/components/pie/pie.component.ts @@ -0,0 +1,99 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + Component, + ElementRef, + Inject, + Input, + NgZone, + OnChanges, + OnDestroy, + OnInit, + PLATFORM_ID, + SimpleChanges, + ViewChild +} from '@angular/core'; +import * as am4charts from '@amcharts/amcharts4/charts'; +import {isPlatformBrowser} from '@angular/common'; +import * as am4core from '@amcharts/amcharts4/core'; + +@Component({ + selector: 'app-pie', + template: ` +
+ `, + styleUrls: ['./pie.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class PieComponent implements OnInit, AfterViewInit, OnChanges, OnDestroy { + + @ViewChild('chartEle') chartEle: ElementRef; + @Input() height = 350; + @Input() data: Array<{ name: string, value: number }>; + + private chart: am4charts.SlicedChart; + iconPath = 'M53.5,476c0,14,6.833,21,20.5,21s20.5-7,20.5-21V287h21v189c0,14,6.834,21,20.5,21 c13.667,0,20.5-7,20.5-21V154h10v116c0,7.334,2.5,12.667,7.5,16s10.167,3.333,15.5,0s8-8.667,8-16V145c0-13.334-4.5-23.667-13.5-31 s-21.5-11-37.5-11h-82c-15.333,0-27.833,3.333-37.5,10s-14.5,17-14.5,31v133c0,6,2.667,10.333,8,13s10.5,2.667,15.5,0s7.5-7,7.5-13 V154h10V476 M61.5,42.5c0,11.667,4.167,21.667,12.5,30S92.333,85,104,85s21.667-4.167,30-12.5S146.5,54,146.5,42 c0-11.335-4.167-21.168-12.5-29.5C125.667,4.167,115.667,0,104,0S82.333,4.167,74,12.5S61.5,30.833,61.5,42.5z'; + + constructor(@Inject(PLATFORM_ID) private platformId, private zone: NgZone) { + } + + // Run the function only in the browser + browserOnly = (f: () => void): void => { + if (isPlatformBrowser(this.platformId)) { + this.zone.runOutsideAngular(() => { + f(); + }); + } + } + + ngOnInit(): void { + } + + ngOnChanges({data}: SimpleChanges): void { + this.browserOnly(() => { + if (this.chart && data.currentValue) { + this.chart.data = data.currentValue; + } + }); + } + + + ngAfterViewInit(): void { + // Chart code goes in here + this.browserOnly(() => { + const ele = this.chartEle.nativeElement; + const chart = am4core.create(ele, am4charts.SlicedChart); + + const series = chart.series.push(new am4charts.PictorialStackedSeries()); + series.dataFields.value = 'value'; + series.dataFields.category = 'name'; + series.alignLabels = true; + + series.maskSprite.path = this.iconPath; + series.ticks.template.locationX = 1; + series.ticks.template.locationY = 0.5; + + series.labelsContainer.width = 200; + + + series.slices.template.adapter.add('fill', (fill, target) => chart.colors.getIndex(target.dataItem.index ? target.dataItem.index + 10 : target.dataItem.index)); + + chart.legend = new am4charts.Legend(); + chart.legend.paddingTop = 20; + chart.legend.labels.template.maxWidth = 95; + + this.chart = chart; + this.chart.data = this.data; + }); + } + + + ngOnDestroy(): void { + // Clean up chart when the component is removed + this.browserOnly(() => { + if (this.chart) { + this.chart.dispose(); + } + }); + } +} diff --git a/client/src/app/shared/features/dashboard/dashboard.component.scss b/client/src/app/shared/features/dashboard/dashboard.component.scss new file mode 100644 index 0000000..0042b67 --- /dev/null +++ b/client/src/app/shared/features/dashboard/dashboard.component.scss @@ -0,0 +1,20 @@ +.grid-container { +} + +.dashboard-card { + position: absolute; + top: 15px; + left: 15px; + right: 15px; + bottom: 15px; +} + +.more-button { + position: absolute; + top: 5px; + right: 10px; +} + +.dashboard-card-content { + text-align: center; +} diff --git a/client/src/app/shared/features/dashboard/dashboard.component.ts b/client/src/app/shared/features/dashboard/dashboard.component.ts new file mode 100644 index 0000000..ba3d1af --- /dev/null +++ b/client/src/app/shared/features/dashboard/dashboard.component.ts @@ -0,0 +1,85 @@ +import {ChangeDetectionStrategy, Component, OnInit} from '@angular/core'; +import {ProcessApisService} from '../../../apis/process.apis.service'; +import {ActivatedRoute} from '@angular/router'; +import {Observable} from 'rxjs'; +import {Statistic} from '../../../graphql/generated/graphql'; +import {map, tap} from 'rxjs/operators'; +import {CookieService} from "ngx-cookie-service"; +import {TokenService} from "../../../services/token.service"; + +@Component({ + selector: 'app-dashboard', + template: ` +
+ +
+
+ + + + + +
+
+ + + + + +
+
+
+ +
+
+ `, + styleUrls: ['./dashboard.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class DashboardComponent implements OnInit { + + statistic$: Observable; + count$: Observable; + segmentationData$: Observable>; + clv$: Observable>; + + constructor( + private processApiService: ProcessApisService, + private cookieService: CookieService, + private tokenService: TokenService, + private route: ActivatedRoute) { + } + + ngOnInit(): void { + const processId = this.route.snapshot.queryParams?.id; + + this.count$ = this.processApiService.getTotalRecordCount({filter: {processId}}); + this.statistic$ = this.processApiService.getStatistic({filter: {processId}}); + this.segmentationData$ = this.processApiService.getIdentifiedGuestSegmentation({filter: {processId}}) + .pipe(map(x => x?.map(i => ({name: i?.segment, value: i?.value})))); + + this.clv$ = this.processApiService.getClvClassList({filter: {processId}}) + .pipe(map(x => x?.map(i => ({ + category: i?.name, + first: i?.typeList?.find(e => e?.name === '1st-Time Guest')?.value, + second: i?.typeList?.find(e => e?.name === 'Returning Guest')?.value, + }))), + tap(console.log) + ); + + + } + +} diff --git a/client/src/app/shared/features/dashboard/dashboard.module.ts b/client/src/app/shared/features/dashboard/dashboard.module.ts new file mode 100644 index 0000000..2f73052 --- /dev/null +++ b/client/src/app/shared/features/dashboard/dashboard.module.ts @@ -0,0 +1,25 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; +import {DashboardComponent} from "./dashboard.component"; +import {StatisticComponent} from "./statistic/statistic.component"; +import {ChartModule} from "../chart/chart.module"; +import {MatButtonModule} from "@angular/material/button"; +import {RouterModule} from "@angular/router"; + + +@NgModule({ + declarations: [DashboardComponent, + StatisticComponent + ], + imports: [ + CommonModule, + ChartModule, + MatButtonModule, + RouterModule + ], + exports: [DashboardComponent, + StatisticComponent + ] +}) +export class DashboardModule { +} diff --git a/client/src/app/shared/features/dashboard/statistic/statistic.component.scss b/client/src/app/shared/features/dashboard/statistic/statistic.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/client/src/app/shared/features/dashboard/statistic/statistic.component.ts b/client/src/app/shared/features/dashboard/statistic/statistic.component.ts new file mode 100644 index 0000000..3d3f460 --- /dev/null +++ b/client/src/app/shared/features/dashboard/statistic/statistic.component.ts @@ -0,0 +1,40 @@ +import {ChangeDetectionStrategy, Component, Input} from '@angular/core'; + +@Component({ + selector: 'app-statistic', + template: ` +
+
+
+

Total Processed Records

+

{{(totalRecord|number) || '--'}}

+
+
+

Total Identifiable Guests

+

{{(totalGuest|number) || '--'}}

+
+
+
+
+

Potential VIP Guests

+

{{(potentialGuest|number) || '--'}}

+
+
+

VIP Guests

+

{{(highValueGuest | number) || '--'}}

+
+
+ +
+ `, + styleUrls: ['./statistic.component.scss'], + changeDetection: ChangeDetectionStrategy.OnPush +}) +export class StatisticComponent { + @Input() totalRecord: number; + @Input() totalGuest: number; + @Input() potentialGuest: number; + @Input() highValueGuest: number; + + +} diff --git a/client/src/assets/.gitkeep b/client/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/client/src/assets/HCGlogo-Transparent-White.png b/client/src/assets/HCGlogo-Transparent-White.png new file mode 100644 index 0000000000000000000000000000000000000000..0842d5a021255dc50a08a376cd77f28d8853260c GIT binary patch literal 37123 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 KKbLh*2~7YJeB6Kl literal 0 HcmV?d00001 diff --git a/client/src/assets/logo-apaleo.png b/client/src/assets/logo-apaleo.png new file mode 100644 index 0000000000000000000000000000000000000000..9ed55e1cfcf7c9fb24ebc7075da62fcf541f0db4 GIT binary patch literal 4655 zcmbVQ_dgqs^N!XYtxfHs4Yi7*M$8~a?V>idt7b}Sx2YO669ly@W{Fl*-w3s96SFm| zim2JdiuLjR7ryty-TiQ{=bpP??sZS1nTb9VJr6wq0AMnJfGq$33er_xOnd#x54-qp zUj;QYV=G<#K;z5*uch_ZA6((ELoG}!0W`eg5A|)`p&6f+FOMf)Gw&33TOBHQ0RSwi z24F2K7{zu$VqQ%(tKK{FS49SkmyWw(_!eT1cOqfYpyJ4*;KY6GYh@`I%)>|x?}*if zpi>IgUKV~-uruH}>w?HD3kI4RtJ^zz?_o+jor8>+Zm(q5+Zw=Qs1#1Zc_$4Gw78P2 z$ckskhB)eW0p*IDOH#ZBeA-V?fgSc*aOdRuZOgC4(s*eKz-Fn>p3%5b>%&M<4N@F?)rZ>iGuztCUR3v*nY%@B4^f{DS`z%l85; zlu$wkG#v0FR>)`1dPq}Y;r0vt(}dVd@7K0+%0ot2bZGJvgJ_%M7)$|6v@dFrx+A>wGi|IgVDO0Y@{7fal zmZz0suzGWcsU2H801GdVGZyJ;r^;pN

EqQZW+qlKHCt2rlU9Hj4eSibK9=7$&P} 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 UMR literal 0 HcmV?d00001 diff --git a/client/src/assets/process.png b/client/src/assets/process.png new file mode 100644 index 0000000000000000000000000000000000000000..db184413efbd6163b4ce2e778633b9cefbf6c768 GIT binary patch literal 49584 zcmb4qbC9P$@aEX|?AW$#+qP}nwr$(??BFxDZO@LmbNjvf)!pCsR&~0Q>Y!4oH_y{a zq7>yN;9-8j009BPOG%0<|I;V`2^7S?w04pa{;wMCljVN{f_9YDasdLuMEOsEEeaO@4OoVI6ZpFC)k9Yz z{S5oAZyF3ma5!W)P~4S}N;#3rOM2%-PD72ur`yBZ!`s5${3UmX&*xO&+~9TX+s@+i zdNzx_g~hFV%2i8EgKdR6jaDpb7xf8(R2L-5^{(&R_vmCwHV_CZFj2G$$@H-6-pOGb z=XJN!XxdrxHs}QZ|1bH#cTDG>I>8Ni^)Bpas-sJx&lpk7l=n8m;v|R5Ydz40P8oxb zI|_|I3ZFHdR3ObgJhxmcWr}!k%001J28}w2|JPr{O;CCJEdL&K!E5pXy9$iYU@z(U znkKV6N#yx2REWv>$%yz#9wSZW$x%bg>8|qj1rC>z)9(nnpT~56Y$^cnNGeP1! zeEkc~A=t!GhY(AhIFoK!%R!+O$5@RzxpT1na;gY&TAZWpqmg$osGM8xuhZi`yN=lR ze1o_z9)Fdqw!J^`n)ZK(eF{rTZ1PeZ5jx}F>8lJ5)@B)ijfL^vVKG+yU*bSd(1@^&YL97(!>w87`D+}uEJN{Ay^>1kn-#B*J_Ej$-+jfdo4_%UoS zZLT1JiA{-h+f(27I{Cv7-MCgbKtNp7;QL1`?}shBof2Dk_RyYZ6{+}Z=s#!gjwwG{ zYE-orTTUCo*Wk|s@9b=`l!F{rNM*;-oaADc6Gh^7}1zL?JU)II>zz8eL;fFnNlUh}z zP^gAu%%o{CC#!2i;HrdV4KD^-dXlry&htjX_I7X2mfN=m$l5mt(1trEuAIkQ531N*K?z68U$>mGZ+-?VghJ5oK1L`GA*Ur~beQdX zTD$iE?`(y?){eu4uezEOC$g}TfAM}jz*8?PN!5wF4i{T^4n%#ToTR-Yu;8aMYG#W@ z^1>AF0zKCI^tPeS;+QY@?=N0d^T&*_!D4b$e=C6$4=h*v9sjE8> zPknFG_?-30?_y$JLj(46A3Aoyuap%7g z(uP%xk8g!vNF=@w8DUcqY)cfxU}edAr5tq)Kn8x}096=Nf)TE5o@PSe=bvo(3;M2m z9zaf*`EM>VzkIxPa;e2s_7tLuu7lKM1a&{iQum#(!+&#6AdU~tOP@15--ndZk&?-}o z6gs|8mq##0pgc}4tNyR@i~iqYCW=!ud^Qe5_Z-4Dh^4{S%eH$YExC19Q^OV{C-{(4 zAdFBci*tL}*sq=Ulit|W$E%7t+uGID(eQ@0Y*g}31)7Z)_IJs<)^K{}q+3pIV zt|`T;HIeZF=wkuUq)X7lY?E%HW8rxtZf)Ea7@`Cu2KXK7CP-5CAXXuvu*{lG-TL@R zbjDD0zNQH)iU`*EPdY+xnr9yzl?{B!S(?UGoUY(Yn9&^N@eg)I9JNtHxV!3jp<(E+ z1KBay7A==@{?k^U@zQPlLzsiAwz{cSN<{Bk8I#Wp?ZnWJx8)yc_7rSJ(1^1>9P@wc zYk99==gyvdX%CvX55)MJOR%{D!PT|~P)QZ7$O4?GiVYpgz;@!l?dWcp<%pW}OR4~L zQ60(P`d1_Bi6q8gTPRol#_~}XME~dn)>-ix+8Ah`uR*{#%b7!3-EFcdSWW_@0QFQp zdH$-3e)d{T72efum5^5&jjAS<$}&%pngQARHf~GIQ^0K_(CzJRL7$Ju)lF8I2INpq z%g!`{jU+vWe?C$1H1Y?Plv#8$sz@rht}O!IbtHCXH+g^}@Ra0xA^u0Kzk}7rmL2a8 zSKx_EaUzB%wW_!v&AOGf<8(BHC@n9Vmj0=dnq&dxC3vZ}Y1@nh%y3(W@M`L2|0=-_ zw9x3Az5YSgO${o>d+7bM(3}*KMDj+E(421XQ3`z{Y7lvtbf7YqUh0TEs&hL*ar2W# z!;=a>-Lj6lFtrCrHILK|y56%oDGiwOFojUsR@q?R(z4&*xNSWb68cJayk*&Cx#l)f z8L{Q|7q@gCZ<=XTjcO7l!2@JBj>$L3H9(z9&VxjkmZGLO0NicOg3@{T0+jHt#_3}P z*aVPL+k^HQI?|x6P8wswwXC*jFHkaWpEf&31nBeuaW&N?HjymZO{;HeLz%W1mOLB; zzDVLy$1F=+W3?G<>I(6V3yIBSzZ7nO7S;c>p%fz z-_>->h0Q6Q5_`-`w3!H08S4SJ{_Z&SxKg=ZN^v!(O6Tf6`;WJ=aVuYvWGy0JqDmyy zlF%|GR6GReS`Rnf4Jg4sxEG}Nq!lw?FmV!$PpFd%;VTBwjj`L~R`Q_>oxPq{st# zQJ!kEAGN;J=w4Lr=j(Ut`^-kM*OBa`@+@uTp;iJBH5E)dZR4a&TsW-;?~dti)#3`q(|3Q^%jM=2$>Z-KA&1@W#m-2x z(paBE7Z*Ob?rR(|6?PEvBA84VQ;br}8YEGhX1Kt*wlW~C%UJVUvdWFfhaX%hZ|Icu zD@8)BgUHP`lnS1s>=nfoHo{|w!zf{CjtzuL?bK}TT9Su&S@oh?;`=BYjaCFVP<4th#E<^}^jol%-wG0HtO zRpS=I9VDwzulVx0$k@qc2|i?sq-0$Da=?f+5lUn`3k$ORjlULIIR5c3GnrIjOA5lZ zYOQA}ve{)3;Ee4BAT- z^Bgr5vxy8={)7UhecIOCN|Zoz{_o^m9-rE2#lCH5mr-_n1?JZUProPE(=~D zq5Uj#I31SyY9TP5^AFQYocX2;aFrd~2`Kr(uS+yw-2zR3ouyaHflMe%<@Rf_gDPTQ zAm&gzODOR|YoL*4Zmb_=&q%6;)xrpa`6aBy0c3{!PZh|tpREPd|B5n|KoU6@DaTur ztGA&F#Y3ixv(-U+qj9jWsaX4I_%##WnOz2iyXyufw}dUhWKsWiYFd7xbBiraU$J}z+-0K6deH+fuZfnn0VI%5t0`hnw`HY zk9#CMJ*L#l>0N$@CNFjyiuio?>x*hecH#5WssJMHMkLrF>*!c+J{5x1g{S)h=~96i zL9#l-!Hy}QmNAc)_NH<;+If1frHkx?LO$0u%2Oo z)GEVS;xbubh1(&8(I!(UY5fD0*n5$2=xskYUCCWxfszp5Y^AN|$z}UT_uUi{5(z{8 zy9AjS+?0MKO-!`|46!AvotHST+D5EwnYMHAiVHo*8$wd47-fWY(z{T~4p-N<*uQ=y zJKh`&|6>rkKYR~WB6D14Z?}lR_;yp?!i~qq{lq}{;TX8%hWlT3tXEJvquopUR(Qu%*jYVFbAbb_qIz!A&L&=xYk*&omOgKrM);JleINEF7 zrWnxn#K*ZcwrMm%37Ts$jkOd=a8~fzTLo2YWR)1;afy2inZV@Vr? zLXqOY)`nQINmFbMrkXm3Af%RDBdd)jzC#%6>vZPmm(*?63|Ff+VZ(2Jx>3%0mjCcV z*vq;Ft-njLZy4Tl1E{@1u)Tt2VF^4?Mq4vB_;G0tuXC5_i=AwC8ev@RAJMLI$f0T^ zB`DTVr=ZklXDt#N!YcXt-N!$SNSdYu5}BpX<&kA*N#OJgpF^332PtE+?Q=){xsgYxiQ-NY!Vv;Cu9Z|1PQU}9oa+};XJZPEkP+1mmq823i z)IZNEWUH=ZvX8ztKGdSCubfq+<3qzJ?ITS%w()(;CyyjK#N4d`q%|f{`3ya;ZtL&(ltwYYhTIdWPU#H3Fu5Xx?>1zl0 zOPU78qwk_j%%EX8=#duRk_?E&1W zlA#@F3cG)svp_+!lA0cu`3-iKu>C?EyDRg8)mU%) zOv}NPh3qQfIUwsBq$HuBbwObMpBkap=qk7EJf^*0C|}WhBX|3#(pTI{BjPu4naR>~ zZHA93{a>Mt3k095=~ZqwKsF0Qe=PB`gP?Us!Y#pnS1-4I(1xn}soj0t8AcGFWfB%z z(w955lg@y$gfA?-(mx0dP(I;X+T!+ikRR+P#ypvbXkLgCEx*(_|BIwBS!3nRZnZ?O zm@dJ@G%4r*z1`&_F$vL{sypVoGQ*~_xXGSdgFIjJMmtF`!CCzUsy1yeerlVqrU7)P zl1LclsycRPQJClu6xo1Bmt_K_af}2@z`rC+YMKQrl;+clUsIF~Cgi;Rg^Z?&8nRkw zux?#TD0yvNWNcSDtSTU78`jD^)f2Xor1t|ua3dF~!tlt6vq9rKl*0)1o zE%{M)VWY%wzpjh|muSb}MS>e`4t&eTWr&AXPn-6uFdfn`3z4qY)=U|CN)r2Z^z7_1 z(`}BuJwbszHMwjIVoxSemFAn#69a45B(O@m0csGv72TS`y$q!_@^@<^o?kN*SMW{^ zuKxGYpXB#*Y3!EHL1M-Vb2a0O>gi!ApcJ-D()4nmQsF7u%a+k4DqV!?CB>XfDk*>W z&{5lt{TSn@IDYZJREesW*f-i2m7X(10yq+5@YQGZ*LDu^Zx~F^^0szlhERr<6_2(y zYeyE2Kb}4N;3uL?N|v_MXONJH$^!$LphgH8;^K`s`9z-j(BgbfY3z|OQyA@w!0jZ+ zBoQ>jgWyzZWFK*o1&)0DTOjXLorHXyDWD#r4@uv}n8 z70WE~D34q=n%#{o>-`cxsDTrQk*edCpxjJg8T$gI;J6bOl_p6xqTf5Pvn^NGn3#Bz%dCd*q8+v}NJvPS zv3J}nKHXnM!|Gh}m5#|z0f)G^6kl@@o`~8-XJT0KCrn9l73h1L9z9Xybjx+%fGG!e zny83g)3`~rYh5x1>;iM_^eD` znIW;ZMv_QloDiD=bB^r8M7rmGb|}I74t_jOM<0B(J-X53e>S>zt)AAy3g4jwXHAXv z$uI7hHY!=x;fmq4x#NjjPzNOgR(dUS83H|EuvU$xGgFHwu?>EAA# za?y3)(>(6u9&q8FX6X0iZil$m)Qoq;9C+Yl1d@AnMmH_&&$LY)wuKd)QEJr|ppy76 zL3CLB!cZNz(XW}W*lpHvJWK}rb*Br=N_Ax$_=v3*^P_DS%wa|HGLwSVDc<$bGyH3KKh<^$^AhveJ7Y) zkpBhHu&r!QmTLakYzp4_>>?;7r8gkS(P`?*V?1D1U)xo@L5cF{TDKgnL1w-Jn8G@E zPwtyla#}jrY0Zsr6G#*|W!7mpz#-<)^cJw3OM2>R9-{BSspL$6lq_cPh9nTB1YTTH zo$P3}JI-VUd^urL9p%5#>N)M~<-+2-3=hK+9%TR}i~}{Q0eM2Uu+ahY(!!0OkF@MQ zNL(>A)tRaLfLxw!kP)MYwoCsGq#aG+Hb%0lfdj1mM;eZen`9dgYD#}Gn*IytI_I0^?V$FqZBp%jam!kPyJ*XCO;_kdu4?nxG_4~Wd{qZoFq2hzp zn^2F^!%+OeEbs;=aO9El@^~VxI?&gx!eC`>CYU6ES6mn7HPB0s-%a0$Vu04#l{h_k zUtQ1-(`a_`s(&YtmKu%7mai5%DED=+`G=E z*$AkAPy{LO)rw3mJ(v8N(L*fIR_Z9V8mbVyb90C2hYdv83pFt+M-_Urk~T*LZ@2}v zs>a=UG!U1l%;ZL@txd)nGAt6X&QrwSE$D*b{k|(25`Z6?x|bss8uTUF{o`v>|HZF% z4Vp{=>K^(^S7ADSaOK~lJO+$F*MjI~9 z2%6dy(kOCeqNGk#TY0}M7$edW2IoNmNRqo+zH?JJTYL9M4EI35x1$QsPLy&YLF;tN zQkK8UQg~MqsW$+dBv3Icbf#MKSOv<*4ong>6~c-3s=ctn@%%Zk~fA;t81GIo%= z)LsBTeBf{Zd7`h3ziF41O(@!A=2;)N;aI*ZAhF$LT=9Fgzm>#nCk)q2VO+|!()lmh zE3xv4Wn69h8M9dCGpCQjkn-K93wNJexrDXccNz!@oEwWMU$LuW9f(U42 z)aH1Cz;xP1?Or<7Nv&Q>Bw`=rug&ngGK($h)<|3n+2L%c+Z9xx$;|FwV2;AVcAENO zcvtG{D(@W|>+op@TJ)T)1xlCUvL?qI=x+lKiMpdQ0VM9ISHUdI$pF0f7}Pd10LMIhWtr^5p@&nHb;D%|w4{4aGXCAxJ~D@yN8k2w zD1%+_>M?N(uaaJ!+DWr1%x_m=FAGcA#RjL{7G0+{=41yeJDO_xBr|2U@UO5Q)t>B%q;*Ad*@$>ocRIdBR-O?@*YB$QQbom;Zo6Cr*aDG0m0#6F0d$i zDq6Y|I$SLnr~_{;=I7zP)eE7j6u}}c5Y3b{TT>AH8(nY?4Xhf(xlZi&Fkn>9-?QAv z99d%|7>mmED=kY8+-STF`BZB0}6dWx~I*HogdEUMLvcn3yhVG-bFHdZ@uLUXb1*yF zFLG^e)PuLgvP>2@V?X=H0SOdoeMu@~%GeZ;DB)ryDg35rWHZ&&i-p5;7d*j45jC2Jg|bxeCfQF7u_|LX}gk{Ou{z%i>~q zrdsh-ad~Z6*oSl56=>aw(zD9{==ba*6QZYGT>tl{75*| zg|R_us+Q#Y%Js?w6V2rMK2-YX=_l>Yfe(DvtX%xIhNw=5xb01D!8B^Y_N@qAny@lu zOgMuz`X9BND6Y^}quo<9LwJ=X%iPSx8BBdhD&L|{-G(?Ck=_-z&$Jzk)Xv+q_HFcx zz~T&YFJ@sTINi zFKYcEsst-UA1rOSD;hS2&>pSzsead#DJiAxo4s@l(9LCOKZHcpA65M8i^Gm62o>y+ z&&cI_5wg-O-~b3UnR>O1X*47MyMJfM{@<*0tFOLDwv|=ie>{L5e{jm5bKuVT#j1%c zz#DTNIfNGj=DJ&2${zpRB_NV%nyAk;Be`m7=BN+mCde)Ta78$m-I0d;A_(LmE{Tb;gGy>Txx1ilB(V&1Sc>*r!@N9GWd&AJd>fy*pyKc8)r< z7DSQanqEK4(kB>y2I*G{Aj>N|g%w4w;=tm2ZcFtEE2Iv`%h)Y4HUl_G+zW{t@2cs=V^+k z*||7dp3OyPq6Fr>2x4PmyAFvJw0S`c_Jd0L<6WjqplWg*Zt2;#`ymx{9z~(I;1Csd zGNf;O!P>k(xH5_(c4m~&ruley%3m_z#6TIh&5%ap=I$ETf!@2gQT55P(Qz|Ke2!~vK=mHO{&iW=mlA@vCV8bStaW_Vb~U<5dKZ2e|m5ij6pv z6-D6kp{b8M)tDgFbjQ^6^@+;6=-}j!n%}h_^2*$DnZUQcVh%bu@zD_1))xaojQ*VHRN_>xf`&cCELdUpq@R>QVDHNj+BS87neQfm$Z?z-cu z5&-WyG3pxa9Ud;VUWW-6%?`;O>27M*5-5e*+xO zW&+;rhPrc>Ka}p;j{jlVpl-VWGCi_@lR9^CBHpnE|4AUYazu z+l%h~ggqWdgagFNW=4#5qNj1`qECqY0hP?&G-TZRk}q>}t5t8)S%IJ^|0YIBF!{?Q zDP7A8Y3i6*oSuyqDD=zy37{}dDAOD1qDqPN)ih)9G|U!Vcp%pNA*;KT(hql+@q7b0 zI0BxbGpp9xY{PP#juI1v0s`*_WxcB8#cGdjbZVh1$vi+=+${HvOsWzSF^)Q<^_>nT z*`2}hI>>4)f{j>NlWNi!jXs*K!n)3uK>DT*1GKEtDTKif@=;KLx#d}|?rN>oapn;7 z>M3_nP4t2jQLG8)m}utn_E^}HNN&IPcb*8KPG?|~k(ITv*c5QJ-q?-u690HRLLbk1 zB|bhM#gE@$j$aQU(o}*yhWLt3KTY6Gn`OX_ph{f2$Eio`8oh2W%Pje3ifR!7`M^la ztd9b=Oc)e#slDW6uwMm>?^N36R?Euney`kHR>e(?*qLRfd_j!D>aXbsxk7P# zj2k+`oIca%fiR(BrkySiPv`SmC`EwgrqLBEQaF;?7JdJuQgFc zbh6Y7tIgQVjSUZ8lXg=#XsKDd(#{oUv}L1UN;#4k1jR|3z8?~-W&zD!V#P~TXFW{* z7r_@sJ7gY@<=?YAIyc?w{&myyoU3LYfnvfvB1O)%FS{FfwhO%bY}EjVi_VI{EdIKfAmt z%?KG`xQjUALsG&!><2lgThP7utRB|_!SCnT6+}*chw{H(diB9w=WXQ>}6%RBJ%5stf1Th^)5`M^Evu5}VLv z&nPFzhNFbT4=Zh#>v3E>+N8STDQ&=4ZnBvkX^i3I$(VcEhpN7pDQA+x-%{XpmE;yD z5-V)1#zEj#+zzAte%70QZi!F5^zes#*K3`YmWZ%A+)sa&Z|ckvTT$<}hvjSugUX5Q z3ZD%Hq0S0E_4QdW5Z=!C!{&|Cm#_{4uCllnK9lq(=CotuVJAfT#P!{@g*% zB#X3FNpQfheR^6@D@h9IDdPXI@>#>LoM-2^?koR;p}R#tj}UzTZBieUnyd*>SFa$6 zA%x*VBZc}nyiH|0?T0{-wJW)SdvM7=Kv3|)r91{3aElIm)!}|Tle7NGQ)SYjEN6x< z_v|01BF9F2L>oAp_|O`Ypk?f6lULgzMP41VNvmlqrA=0~@WLR?vXazuSH(_v;9TIo$+>Wx``h5!=?!SwRj7OszKepIQXw9Q;;*;<7GZDOE* z`lx+SOE+a8QSOYxf(f3IrGu8p6HT{>EqK6cN3=k&8R6*7F5D?P@~ydbg$pk?fE&%; zs!8eW=0D@p+Oj%b_81xj(^Lr@>nTW(QOc?~S)K;=AqIdx{Ai*jU1{!vy&Xxxo!qs< zXOBFiZJRSS2zcU4I_)C{Q%!}b+BD!)L;e}}a>3eWTH~BLAR4xSqxwwY<9iREoK)RZ zV4foOlYKKHnCj7kV?G1Z#*D@>##oBxDJR6&8)peP!><13Pk4KrSviGXkMJ=3toP9$ z5rN;AMITWUxTQXJF2T^|e&HA%t~;BN55%w!0%r!QcPoFv2V`97xASQMMB|K~Lo_9B zdVIZQ7H`*)hNDl=7o)SaLn~jHDDZm9Q>Y@C(P$ry?=&M^z=vGh^w14R&|`_C{L(*; zPVl52;dt~)HPCx>p9e(TQFbHs_`*Rg?95k33*AM9))d*hGAQo|#>4qPrT`ISU2p#L zfs9t5CgaV5Dx$d8c3JK_jQtV2?KeeZPc5OT@;W+Jdi|-}F_W+S6ts6{p&X2}br=)t z)RJqB{~F&=O7M|&xV*h`xcX!(E?ijaetljz>+GnspK1#*p8*1p$xDp8|L_$Tui5Xt z5R~HNlq`e$!i2Cq4R2xb)EeWh6;DnMGovT*tN0+4NoR_?(b`n*Zo#ftTS;!PHc-f% zQj*)GjArnw&$l=p3X@Od{3T+-Rip?p@|m@@<=8ti2>gOIn;yC0YNq!oQs z6j^TtxlavNg52V}EJZJ~eL_+wIPa{ZY~49suoKNr zGvAOk(%oQQb9^Q5fTz}Z{X8u9u4xolcwR27`_GNYZ=j%V!7MKJ_-%arzlz~di0Jr6 zrPm4=F+&KQ6=&yf8AfUz!Jsu(b+qQC*@78wg!D!Adx3#(QtE1#fUpFX454si*40o{(N?iW9Yxn3OToPuqMq7rT~$R(f&V9GI( zez6;?7i<$n6{P%`UeSc$f23c z?stPt4^z3FZa^9MJ{+R7H4jQ&EZ}7^b#eA_ou}HsXSje&))xqaneDz&dOX*`)3dL1 zLPD-F{xzyJrgg?;&22$C)qO`OmKrLVaP8Qz9X?~pciZkZH)p(^-i<$i1R~r-k{$l+ z))f6gXR!z9ndHml5Br5kB%o~T$ivt_yrVj~!kIp$Smt`aZ{1VC#r`DU#0qn$)1Ef}4%NAbkxznd+MY+kaM+UvA!d=ea_;I+m-R{BA+EKFQ(^L|Sq;XKE(RgI zwY%Lb))o*td50!G7HX)wF?QI0<2i5EuMX*^xa6@}mESQ&yx3V4>Auu9_&L|VTSj<) z(i;E8azIXtGBvMfp*qIH)VhnxLtPZ7sW6jc?4Y8!wvHb41wJ{|wOYL>!jHgwI~bG^ zPc{Ebof?^F@2QY`qEo2cW3F)weT%NDsh3jpN?L7EezUK1XJK=*!_D@3l>a*u5P(6B)7jGL>>6ojIxF^;vlNLM{@g^i`N0oU0ZEg|CCnDuGKNtOkCg05F;6djQv@CLO-t+?VDk zJ_eOXxMUs5VXS5rQ1eJ>hU?%Fm}uws*D32+!%yRz)vH&~&#m_(2e*PTt$Oj`dJ|Zq zeQ1b(Z@0f8w&}N^A3tng2HD)3sTU1WOWw4Sg&cG(Om0lAqkPk&j&OMdLIJmO^S4Es z6zMDHZC8cWlRVn14$%F$WiM}z7>QYq)*gEMQ55-fb4e7`Hn&svSkG1LmR!9ed7cu% zF09^}edhgL+@8EJo<+H5d*u6%P~|{J)XG`Q`t0}I@-y}XFqGCzAWtUWC8CWBq~Qm; zf&V_lY)=8Ha5ek&>0a#46-Ot!;s)VCepFH z^Of|hU?3ujvG$8rnhLoh8+ozAgl`51Xv+y#!7ImC@)AlX5B4nIs6(wfbFczdts&6V zl***Cle05FHb3EPMQAEykv|3B%{HXvhtYRG2-_$3ch}fUEnb$Egd_oyz?AorrTH%t zAo-+Yy-;ilp->i+5^V)sJrs50)4x3D=FXT)M#P$kl6;^+*ZJ-JWmM@itAKO6RmFg- z@LQgvBMA&Uaz+3!aM#%u0kSr(38?{U+ZhApDs&aAMHc}s`A;U_O_C=>9O&)hDct=tH?JL*4X9u z2fx(!qiuJ0AcY&aLX1`zQVltUZ_s9Mkke!XfvGSiS@yew_q0{S#h&ymvoNrG3G*`l zW-#Xv98kQ)n5GYK93mb+da0~Oo?hC$ih=pf8%RiG{KC_sAll!rHYlz>J?)H*qHvld zn4zu-{za0&Z>88sg^wT?5@c=?f5mbGl%qzPt_v>Oo5$CCQo~zw?pHrBxUYXPdv3_G zW;_}vmdwfU{>oQGP0Sy#4#EOX;miBQs75nPWprBa>!eFn3J`KG)^w$AF!qK+BE5(c zD5Qsxp5-uo>jrpyx$cFmv_x6>(^6{mNQ9?uCq6 zIve|%BC6E8RYPfI<)H8dn&&YNernZghP#V5Vybd&OQn-ror%%plVZV6U7ba~Y*~B3 zF{1{pCng3r_s13|I~+B3y;&^wI@Ehj*LkPgxNi1&F0ak3%iAPMr~(odB58Kcox4|D z6#Ubfzqnj{dH0|qt2rqs~F>JWSU2NL}X~N{!+CUe{qo2 z4ro>`ff6FMLWf`Y4iWa_qILi~SYVU=j@PBv>cHb(mvBqY0DEurGgd(XGj$+MRkX;5 zLRF2etX^&A7Hl8jF!H}RaU!>a2)wp2RVq0>~nH8T$)EH$9wyDawr*a2VTZX-eFzIQD7%d<)a5%AJ-IJBxl%gW`@P;KZpe(2Pz~_wMMqk!__<0I-&vb2r(Pv3B~UWe3HOpGGj8^~ zGd^n%T@}Y-;|~#fMEnryFubDxWgDbqchxxC6&IN-HI|b6f*^K%3-nU<>5U;r%=AyH zdafW_<+o5{9N8#@$w$%6Bj%HvJO7e4!UK;M%dp*qb1g^>hHPEnB{T0>j+w$`eHknP zjk0@oU0s>z8}1SY3cyidMLeORie9Fi?_6-EiqC1_9Ji0S0>MEU)ER5brN%M9_- z+sFGu;j4>T7$_5cANP&xlSBd1em>cCI4CLVNL$4prbu967r%B)YucKzZt}%Sk51JJ z*p6bhQq(Ne@&j6_^foc+wILq!#tOjgCSwghljdX+#`@9cq&=Q1Ge>z60H~%6JudDA z`V)($@(yJ%rY0|z=XCDcN@fd2;=&`LGSEre)UuiVe3c^R^VM^06wuHxbo-cU2!M1_ z^SH5HNP;Uab=uTUp+Z8Zs##pQCe-HR-41Z!kEF6`7FJxBzgkGLp~)3aP0ANSNP*zACKV{MRGjri&rxwc zT++)I-+2r+4RET2w~n=rL{&H7<>rV0prRB2$n6M~?ew@GfGh1rjeH>_1 zPPSX0&@=^V9FXcNdiwM7F&jeE(_JuIUl#6Yw2AdhFZ~FoEWf34K6G`zIj*t+s+!$wm%NMN^)Pn7^Us?&Ozqrb=7unBJZmyFv*} z5_+QStv-)>Yf3CY@$)jIlUd)!g$*RS>S7Ed5h`j_GQlln#gPRzD!Cq8*qqHH5v6=t>1TwX~slyl50FK5qi z@{#?lM-S^4jZqBuS=3;fZ#sj^GY~$MymRP#09Z$V4EF{2?>a|P_ro>H+>xuT*WEO0 z(DC1d)$w_#_$vp=$;gp2o*PQ7E|zrSz7$ba@y2_-!~b}q2=Lk|PFaSc_^C@SThz%M z_G)D|6xtIvSc)%OmHF%=;$!QZV(aJAGYa9*eDRnBzfV^`%& zDKVwWR<#3({>drJPu3G<#If|ISIBPPrF>*;T5s)RCxk`j20Ut7`w zKpE>i*tQ^+YnA1}`bua@%uR6~WA{sf2g1La5?GWZ7AG`8Tipc7aG6qcrBda&q}hsj z+w!DO-Tfp*#J)>m<3jRJi0)WFM4?TKU6FNg$B8(MG?M%=o{?v4P9@~f6TBbA(bTRa zX>f~vGn@f4Oqlg!?MPsA#qsz1mJo6mN zV5>9Yblm~$o6Fu_N3yAFvvGrRRx)(Mb_jZKN{ukmj=Q2DJryD z2O(%IM%{z-NQx@l#3pGXG@OktDeCIh;s?b6&Mzv$(<5bHm0jDLA8!nSmI%!7KbcY{ zI^Ug8HMuY})T9dy7}ZB*M!ga-dl1}rND?4DGhdtUTAQSy=|n+bf|$340x~ftHfkHc zkqRw{Qfy5i6E83IQv~()fhZW2jwNb32-fxa&`B-W89n^?c}OQ)q-RAj){;<$nQCK(D`qUGn4gdf^07*naRO0FXE(qLT=0?YkqvDWV=pz?0nOrl%wLfGK z{)oz@`Jv&c&6n{YO|Lj{gtYR8z8S#!SNN#u%x1m!dG|5e;7+f_{m+qUS>NH-PBu3L z;XTITUjbshj2R*NYj5lR@RkY2oM58)8SOdbIqs3+VUxqw#_8{GeC@)8@&$0NAHapZ zgsCM{^^h!TbX0)!oU(SXbKoVcQ*LqM=RO_*zf>c5?(&IBV_?vaB%ilj?SAUIR zXXogT@_uF;C@VzyHi)QA3$Wue2b+%xZxZKksm@QwN5OD9g$&hi`@(lG*k91YPh5hepoC`@vJ^oH9hmoZ{frwu}C7~;_Xkg@wU+}e*5 zVQ_4oaE1@sXEFu9_!P)5?&xW<)MQ)<8dKFd5VF6+V&ueVcK%Y_IG2T77mSqa%(LmS z;`mOO)PK#ue3k0fHK4v|OETr+?`;tG{~UL-N6gUq>fqMLe8~F>Lfkjj3(uCxCMf0B zF*qpQ<1ihB;`cLM>*6{N#wMk;rhEG(bN9?RvFkq0l=gw|9;%&#gD0rNfy0>$G|v-& zxf$fH+bI=b#;6(_PA1QvgNU!O`g@Db!L#n7FS~BR34${q0Ky~F3mh;5N9Ju3=132@ zvD>#6I1=!PwY^f&gXTdqtG2MM(I0h7c#X>`KM1tMnHEkIv1eu?H>cPe`O{+HJO}K3 ziQ>M(gujt;#ga2*b}jnXELMLChr+VxLrR)gz#D0C9VRWiiM<^}#}9CgZB^4K2QDFe zgGu8bQ;EdwdFA>LkrsrM2h4%Q;r5X)(FcD>B{7$i^J0Y<-eS0+i%fWh4@m!<*W93d z^kYIugNYl?ag#wd+XRolIM;!;3H)g+WxH8Ft*7?W+C>W?^YuTa5!=Qf@}np8Fg2vT zz+2ZAqbD|S$sx^%Gqq+Kqlk;0<%D9m)8s14GS6!VH$WD zS@H!e4=#_7&yJ8P+c%|b!X!`9D_eN%)jPFb0v{c3Al1lrj?)!F$~IP3LGsb6!*^sg zqXv_c_cgj7YjmlG;S9=*&P9L)RIqaz={@GNDB)D;sGUQ?JXufnEwE5i4%wX=LH zVfJ1d8cH&g&ELMUzGfW%)Qu!{18r-xZK?Z+uO9SZ(Jw|oAt^v?f4Z*)d*4934PlU6 z!TSMz^$}`O=e#?RXzCtakqFPM=RogO#!Yz5?fWiDVx3O=xxv96q<;&Yh)xvQc6Nqh z&)_bj6S~!f*YClR(IfLV3rzXWcsUG^KstNXF4}3A-4fi0Qp%7(st=jzN$nzgR6Xmx z^qDmQ4+%8c8RrW7O^*j*;eh~O*>Qt4jd>5s*^b-CmF!`;m(89}J!V7=a*yvoE%bkWAz0i#YP1*Z80P-Dj=wdA>PkTe0fpT)P=p9OTWZ#_} z#sl~w11u_txD`Rv!h~+4qg~mirtDECRemlK^F$S3&a!5BI^O+t9BRpAPe&iztG_N>%#{<%9|8Wnvo8SjR(Fi?D#Z(a~e0nN0tW zuw}*7zH^4mzC{hS7xhg5`!5^3^rcTqV)sC#j0|(VK2F;G8twivT?o6Q5ch%Ljr%aj z0+1hZ_bU_lKOP!ACNcVwgf(mWn}+kH&Scr>yo`Nh`UQTk@I$;$7ivkNr4c`N4i*s% z{H(GL;r#*vl#=#sqz!4!;5KL`2WnFIJk7MWnzr^%lTM3CfK|)qnDr54l!{Z3vXT~R ztAlIs2#yOM3<+#@^ZnD>>h}h&_a#vLTeR;5wNq`hU2OvFF~fGx_g7>x`;U~9{?%3- zm@h*8LWYak2Y9H=9CS02+$SnB!o<~~c2yw38VzXIhm6TpUwx2rziLCP$b`z;jm=i> z^~s@kuIrWkF#kWq9{?$rB(MaMcftNQTU*OH5q}`+7MEXSM~2?QN^ges?vj*yUnUPk z%2Fx8@onz^PUT)C_5Ca>KuPb8(mNkOA^+A1Qr~Bv;jBV}`)csO7k#N*&O!C!ew8g; zU!|~(Bm@tTeprU&Yz#3WlwYS?iFsr{W^X6E$XuaK@#SD zP@HPs+{zBek>VaRG}IDMcb0jH&erzK2jy_@@m$J3Ypk?YaX-f3ICrSy33_8Cl$;~@ zYJDICv^Y2o5u@6OWd$X}08>lnIKE<$13VI;0@UXVxx3ckmSiKJc$gI_Gxu`MSRV>F zzDccM!R`;V02>XA0>bd;DX;Nw$LsW2_s3qqn*#?DEk}p9VsiRNQ0OlLkWVo9P-#Y8 zOvNl&MZimqL#+E*gO!5BjkdNu|412$g3NdNVKU8WD%Niawp8pUM z<@uL6kC@d?ok!e{Eeb;GnL}G!J7%0oBpUYATHHRyYJw{8N$h+aM((ei!28+g=zCfd zJalMTxpzgw^}=_Ns{Ttddl}H)0g!TttI9>BQwajf_@`IV_sU1R{<0@-wId`6TU)kV z$mOoiCHV0YiS7*u@xMYodn^{#;jj?0ogK1mZEd!k7$IV5>;y+$N#G+tH??{QDeXG& z62gObi<3LB?;V(xmDai$_s`#CjrwP_0-H|`FsiFV+}614S~+Sw<-jHopHqer2(ewR zVIq}DcpW!OrMnNQj;ZwN443xy6@^0Jjd3PQi(NKY4ny|ATIADyE~;nrFU~-E2Kjso zFOudL?1=nvIvEa3Ox#|G8Y9l^b9tQ=DRa5Oa(8~s)l!Nx{_w;A24Ht6w$4JDW_?+G z{1SQK|2r}9!KJ0>9eH5$%jrH)?|)%H{}2FMO?eeoa_S@|gb*vK>l6UB6|r%ZZaa?& zzf?Nc+PYAtWSbG3&~E47lKmgiX4Yp5ZLf{bc!~vgP=trA z*wG(v&9~jlnR|0hNVZLj`6EOskoEmPEBi{M;D$Mz%Y^;!!9x8XfY>+b*zbTatLf+) zbnah;ZuuW_x$Y%nJ<8?u7EGmHq@0b`o8MHpwDtD=vPHynQ;S{Wp(``_NmLW4B@~3D zwZO+PcnUWBKNQLnf6e4XF)N$h5;9bCkV8*_hob+A_JnUsd*?3x(z?Q8)LUM)XmKH1Z z6*Vrh(?7=~;A0tQ*SNM8Hk$n-%0$WQ@Pqq&sjWH7UX>-*71zqrof{-S4877#Xmxww z2Wfl{Xq%hocskNpvTIsKWtsGR^qUBkT};-U5z;*>Yssk%`jnsMLP}e;NK9-Fv6CHW z^R$>>58&MN!qP8B?wvTbl=Wwe1#XcXw$8{zO(FUlmm!3Zu%!_M$h5Wrq)iB0T$5#w zR1vjA8K=C{5r-+9qu;`>ff$2L?T=q^NLejB0JsBI34txI7JZjkdKt!6C81SSeA?CrVAZ zAjn}DlU&6rS!QEezqdrGqXJZxCK;72D&0z(1Gv9Dez?`{LVl8oKqjkkt)tST$-tl| zbvQsbz(C;R4f5(o2}>j3`*^GRnaKTtNEx@H!7F@-FVXA1>*J!R93;H*<@noDT@gW# zbKKoskguY95*?}moaf=Aw5JEDYF8xnWUVK=@pdP1NeoMLcE!S5I2_0PN$|qSt}$v zKxR*Jny~gIUd8d<10hRVbIstZ_Td$ncOE zymQBtig2gus!FKzT9LjSq8~oCHDz4h@^xu@U^Ym*uat^+>4-<<>&G$DMc2853+nSA z(YTPRGUMC2#MD64QB+bCOj|dFInB*2mTi?_D46$$xjMzHUrKaK<+?Ud8b$92?k z8|`C{AQDR%^SjP=>WXkiiK4ROx{E@#v}8<2R~Oe7E9q66l1b@IQ&7ri?ovOAWv!IQ zMfc7G>hBAsU}@bSRtkB7D0%dRaKgQwXP&3QCoA6>&y@^D9?BLfpU z2IY-wCfSLOrH+|o0{Z}t>Bs5L#t$Zk%+*J&M;CocqZkOunD^KSBve*8R#-bR)MFEdmJ>54t{ABGG% zra`=i)y!CUuz$c*t|j8I&JH_0-xU{go!{Iu^C#SWj~Y^%@%H9y%Xof(jvJsaHqg14 z%cwI&A#jHX%O>@MC`nAcVhLrssmZ>REvnXClL%g{G_=~O6)cFMyZWBoW2E6K#E4ZP zVwXjUg`iXOswGCqXyd5-rsgKgR?ZeTN<}>?RjK6?-H8R3Z7q6Y)7jN+CxrUER8J(F z*xF8DdyDpgwp8nGYt9KP*oCS8(qUs3eZ=QFq|>d~D~GQ#Vmc0kevLXdnyT*aXQE&c z=JXP?mwvmN$!t5s4inThk50Ic=lRsDHrD1gG;)HKal~q_;TqYv@*unsa)_mDhLQ+b z>M56iQ$JBRt@8>6No1q-rP`%$QT&MFMU+%}MG1={395F3h;3{aQgnA)g8}6?pP(`& z8IG)cu=HUaD(R`<#IoLEHLL7$1U$7mMfFqpD^{+w?6}>HQmu1T1LdblXJmK;gN3ZU z7ltbza!@2~S2+Uf_9pYgN7?Mn&#h9vrDg95ufgf3-Cu?(_Nwu-&UVp9`!}MXzyb#6 z_!PU+(9ktnC=5O_^VcIsDOnDn)AG-w{5k=oJqfV2*CU=-SE(K((3u`$iYdX5fH$AV z#sQ2FMTx)Zy#QDPBORxH65=E=UXt)ctf~yp(~W766H7xT0OoC3C_?spQA*Iqz zqP9?7i?EntHFcF9Q+Y-CMXa^bsy?chSYSz5C0UJyS8=`T%VZCsnZ(*aTgRfZEi&4C zc!sAnCpmEF?2Q|v_jgi#MxXI}h6cfz`xK)y{d`b6?(w*&nRe2$6PG?k6C$tIunv9F zcvCVx$t)Q@QEJCezik0>MrPl(xYNwC*p#!kQIkX`&ILt2_&EHnQz29J#tD z*(HAlH$1E-&(D<2qx?>dm}O+ARvWK!t3gN|Q@1MmQb`8#1@v`5|1bz}wg_XHY#pT5 zQ-H>ir5ZY9zw{>Q>92W(dDm}Vxy=yi5kyK8$mK;Qv+ol0jM*#ft*^JJgp366t72I< zs~TYt>SjNrk&)89xd}UP#z||k$$Z)(iKt>D2-DbGKlR2vh9FHh#pZ!DPQ1re%jg2s0X{;-~ z5jrcBo+PtuuVZ6G%TT9DIX#}wp-GP0%CZ0}C1(h$rGe3AbJN^799fK1vRsPGqllEY zT@1`1-Fp?4!46(voE>##44e|;qycUTSA>|;gGDF?sxjSYR;}g$DtcZ)_yMX|g-AqY zBBY(3{$ZYN*_HC9y$BPUC7+?LXz>?Z!S>@`Qb4p74pnNCUSe?sH*a=2y>H?Vs zll0e>vir#Fx~Qw(?6(C!yN~k+zD4uCNQ*WRQyvyDiC?$Nf{t|F%T{#I-HbQY?M4hP%M1>^85jN7PRmvA5j;^0%h*)G%P}N4& zlE8sLJtB5@=K92Kl!=`T;O$21N*I;Q@>p2c!Se8GNa|Y%6Wu>d<6N9x1UY) zm>A0Owb^a88FsSrJJ4WcXxb`M@blv8A;IHPYVG3FD3Wj%ntYgtaDc z*t{L?rCxpfwnTMPa=)J*2dZ2*)A4vygO~qkF-NzP=ZxWzMM@9jS~}+(J$?zu-A?Bx z)tLfL2}&eLN%Ip@#Q;823-!HTr7%;RPx4(n87#ESDpJCV2{Em~Kn<{zopfyj{5@0j z;cq_^A@vNv|F5a)vy3m)N&sI~tD?(g+a6o@n6|!!b{UDXdlqY)VMcsC?_VHxH$Nq^ zt(EIqk0ndfnst_aB|U7A-~*}nid81PdX357zGZyYn+`rFE3`BkWp zHqbxE57pO9A?7GJ3ndJ8(F2%BvNg=nsmij>s%9ym;20v1Qd09xTPyEmGD>lyz6Q2D8f-sG-if!Ss@SsdkU5&6>vuG3(OsCfuOO0XH?{ zt*!m-V`Hgb8}nAITB)mCE!BMPmJ}(QS3I*aUn+r+0c?f!r8B~DI2Y1g-bW_feWNjK z7=zm^MWT9124_E&swHSz?_wuPN3Esxb&E!|RZ`e;MF$xT&3qdBS&kFUI|zDMFG<)V zfSbx8*y#$vN4OnB6@X+=Pb8S$TAi|wr&bqMO-B0G6cGoJ`Ak!H z|LNS_C2_4-h3c|X1i{>Y!HX9WoKz69`Z>k|JFs=j3pNZmVrMI%EadnA zk69s)5H&!$t$s?c+hCe|H=D6jCvZs0h89uRs8f}?k|!>2>hiBqQd>Y2$EK;qhmi|6 z@#>pU*yiT;{I!V@^HC+UI8xE+EUIPfXAc0Tcw zv7rxsK2zq+%>zA7vSmkh!rx|Ge=A$XdqMKm#N`kmyQ2md%J}as`>)W?e{K5v|Fb!~ zIA6L`%I84gmhs7FDC6t=U|FY8NZJz%YOD|r3THPRSVWkTQ}sb?yj>?s^+Eb19tSgz zZ8PaLaKogNYDDYIru7?45h|IGL>>vg-s`(d88zgrW?Q>aonVUth=78NT4jbht)uW~ zftc^o@9D9j*7q0gkGEFj(jX}D=){%kdtwD&Pg};7VY!6g&O&M%6fIsqJe%IvRQqi zbcz~i%2d7*pV)ugt4VRYqM9(CLS6fxJLSh@VXw#^B-Dw2aeQ4DQ{NZ?WfR+y&qR7x z2`y?tg=6A``$-cb6l3>H`@UOVP`VNXUV@z^jYU&zO9Y7(D3yAV6v@NGF5Iqcr}`Ti zGdl;x?ISa_bqoD)qv>+^VQx+TsfQK+r*jkdu5}UUIA1334b+#af=rblJB)4n3`KEgJeYs^_E zn6XarE)8O{t;xJXysi95QX4ee5wu!cm#m__v$JAxQx_*H>Vbcw0j8VnU~5bORp}8~ zr%Hcl4ZbU^qTWkb6q(8iS)=R)BbpRq(?3Apn%02<);dU*Jyr#RF@TWMBDrmp%By7Z zz?w!8G*KuI*~4m&=dBwz%w)NuBC7yvrLSamy@?XOh;Kibl*C!uh)47Cb}w{y2aYzW z8@c9}S3uMN@&?aTS?%YjUh%k*^**oc|7mmC{VOE8F>4l8YJq3f9ocSYnGAHFN&(!WD#`~m9v7K^&3rQ+YZzA_(@*fJ7Q5o*&XB4NrQv22b58; z)(A2qAnNFU+9IgbDw8*F)C?2opi18{5jq$$gg4mu^Y;|}X(DAmJB))qI{Q^B0wPTZ zw)$tgw=fBiv5q2Z?+K={f0%{UKrFV2q_>IP|6@crf6*_+O0Z7csox3 zj}TDtrJH0XW}vL`I;@PYMF!HE#bF6j;yyyg2qA@(no*^Sh|5!cD6MLUDIh_rCl!n) zjtQCUVK*Dw!U|dSUIq;HMh|g*^ueq_aa3L!y=xe@n-X@tqoX6%I!JZXw`#C*i(r#d z@D9ggI*!ljg)(jiG0^$yb*&xInAMMya?-QSa}zCm6$C%R@SdKo%Tvtx1~0J31+H}1 zoDl{VX>1_@!k9!;0|J`OrhV^z)A7WU#%Byf`EpmUngSBj;_y9FhO$`+E6AH<{2SOs z)3|aqlyQw^Pg}NbGbv0IMI9BdK4|P*bi_h>50yzm)?8~hnEcJ_NMvs#0J>{RBg2+* zT4ZN!+Q4=|86b%DZQZpy%Ga{P2{Uo&ytUGj5Q#uL7y;b&)2^N%uy9^q{DSVIsb@h+ z>LTNTtsO_noOb*aFw@7*eq1WfMYS{rv_M!92S>X=3@len87&|&UDf3yfCM3>bnnI# ztqW=)BXNKw&SgPY)lqh%6G-94$H(kdW^a~ltpIGCVSQaKRg6DOyK-U_fFz;9)EQbe z)MO$^fi;s|tDa{vdYG2&439$0CbNn)Qwkuv2~df$*VhxsP&&=rTj=f0+^fUs zQ;vO|b9{&~CD>%RW(oQjf~VTr(x)36_nuyaCw7~w%dr+1#0azEQtSWl6l=j z+;^Iww7pCD4kN&jD-`u}ROP7lB%@zzZHRC)%4|w~ZDon6zEb@9BsRK}Vtk*&%;LGIPaW$&K}oZYp=D}UVCjeuTL^Ge29L5!NS8|gRB_Jl`!WRV0tf{OZp*B z=an2oo%Dn`BUVs&6I|jHKgCezi{08a@7@y#%$i7y8SoAB!}Y3W-;$@Is%w=heuSBW zfOF0&+DA?Ey1+F#a0mD%S52u)nTew2dW#Gcp@YH87`$iLY*(@4%T92_$8{|uT^CVi z9mRbJ;oqP_Y@Y$6@tzzjsouQ-|wL# za^!7G-b}LMDR4jXajxiAC;i$?Gs)L>HX<>dM6X!R^@Mh!HP80kEXzZH^bzYoVVnB< z2a{pu#k%~EK-=?ZPoMwFVd!s73?)uO5W5*%G<=HRD zjfh;$j2u>M#Vt zoLN{g7wkepY5>(igiBb2I2);m=@f5;6N>|eB9cr0ogChD*Wp-30GsF>nMs9uV2_9P z_Hr`rT=WDd%sT)=)GYze1~`_^lGkR3x~8vf*owKe<=Rrf6&{}~dioWLgU1;e4l&d@ zNob^Tj?>vyN_JortcKL!oNWP4C6|(8Ex@7jxloQ2#`8HxJny|IOLnopaEK8rI8O7Pl~|qERoPhn0v{EbNHB#^)MG<5ib=+ z40MQNDxoxlcW&;sHS^GfZ{*U2&{r+uHNXgcd=SrokM(Rj^2z-8z`2d8{ik;f%=C^= zK8v;hEo_2CjLNS#9~Q}%Mn{9eWskcOxZO7T5-1Q&KWW&Z40u8)&49NU2;d?$bFMLQNK z^LbX1UrNqx`+113BORr#0^BkCCF+FJC!X@gbGOsoiJ@0BzOr>Wyt902!2v$DUUTPIx32^inXn2 z^HyY7_a%#z#qp*d?;Un5@Gcza;mFe*ePZ%BS4;473QF(_@xa~fNhj%LW4w!bTXx=& zW)t>?DpCUr%?5)sLEXcdB`uvEi&^3FKJk|v=oHgYlGuK~Tb|lskyfRYZCBc` z4CkgUv3R+iP2^IFP!v{@XbpAfK>f*AinZFMUAsn}9vRu7|FqN3EzTW2{8sy3>U&#nT0)RExR4K z+zG}UraVrXwp`u>IOV8ix%R8Jylh$q4j0ZZB~uW@P9%&0#J5N&@%zepx4a=s_lYW* zsNL1=q|T{D$|Aq>`D+i`)q1<}*Z@L0=y}C`q;MGOD16+@>5+dDwRN&?*0J8l-BkGr z+CPB<>F24zMx7c0+2f0a!ADN93Hwzl=yJ@Se9)3$6i27teLLwytk*OyIOSf$%}`kQ z2fu3UoY8!4=J@+4U`|JEEz*(mLph>^RRZsvA8MGcWl#U%yTiOu0(JRgEd`Mxs`J>H z;~ykbAG}-F&gS?CG-w3>ks6X$YlZZ5a_kz;MI~`-xF({kR0?}Jp8K=(*6lH~CQM0|1eum*2x^$=vq{`i3-X{mHpc zQ0BlbrXWZ~*2&57z@a5_Lmn?6L4c?A<`};$8{^?J7Y@6Ef16XF;YSeKC#>|1qzmcz zw15lM$&i?*RyhEqMNhRA&*4R-NJ_8xv!85z#tFF&tJnb4SRx?r~MSC-d@NzgE zVF?pq<-SpueiSitF|tk=G10QWw#~s%;xesbX$`oC{i8gakMmYHQ#(MmmYwG-+~oj4 zoMn)-Kl~Qq7Wx=zpunkQ9DP?R?4t^omQ~{_e-?pv^%M}ehXfEMfeHn#hcu(n_|h0r zEW4ph39({S2Uo5#I)Wtz-gy*6b03{aW=@|7;^iWn+RF@Xx$%G;QDu!wEL{xr3y8-H ztTnpS;cgPQcNKe>W+~P(2(^Y#KJOPtFDHwaIb=*CxBO->!A0=pbZvn-^CpB16D4QP zW1_|K1(x)oXG33wKaJ`H0<2fuPR%=AAh+^$kw8Qe39{jqc;qA^_&q1cMjnk)nh!a# z%_A18i5x@3P+T>*Zn#=7UrOX`;p7eGH$P;t;74h-_+D4%>_wPgt)ru_cJ}ND06##L zpR(H*O!0~)p_GOy?RhsoVFbdAv zgjrty=n1cuj5&XSAe1C@!mM|6utb0jSu;i9i*AZD;|%&^kUM>vd8eFN0Oai{pDofum^{& z*2RsHlYHy7t-os2C&^IqV94(OO$e)F>^d2jN|?gA7>BWgfN2%PbL4V_RSZ)xqh?W+ zzuy#vT0<+M#Izz$j3I&;KSz|-boq0h-npXlvT+ueCz*u%toRj(I?oW~^gkI^=ypsp zvSZATjv=1Dn`Xs#vPyb=MU@M?JbEn#5sGmE$S5e1|incWmw<|7Vv*c z?_!XhJV>JbRI1(wvBUFrs}P%@E#j2#dQku=n)lydgoJ#^*h&5e&cuy+{x*P8mpJ|JyjOfKTF-)rJ5YVk_lV zSfA{_=iZ=Ta$XwJkUVfsBrUbSU16$+-)oQO?&DoW0d0fMfsi|X%$1iieGCcg~P`Q{MDO9t6#qVDN zeuwDPMn4Ec>n;L0FBFCq<~+MViu~9D(ybYUr7+)Ua1C{mfpi>2i=w}Zp7ue_97S&X zJRPkT3KyowUuUC13j!Er-SA{_Xz0B`7S3>(oPLQR7@}+ zH9xQR;km3-+KYFDgvF(#lNh&S%uGH_;uJCb=RC=Io(L9vqoVQ433s)eH}Xz|aZOIE zoN?wKa!Hq3EXy*yV&EB;$Z+uy)p{B+^(p2Ae_N=P-2K5KZ-E~7&_!`DqAUss zDAarVp=8gmeKYC1^KjeRae;MR6*qFo@mF3-#<7c)YXP8;w!s<6+~?J=We~Ppa7g8n zwz5SPla$kelCs!|wjVJ+rl6u4Ghj_LUAOuPDBspwNiWl&{cPcSw6kaIq3)i&2f8|U z_jPscoZqPX%4;A>7pgBTba(9^rAhN>;#6qtqJGvtv>^}$k18z`Ek!D|d@6uMg3Su9 zdpiGeWY5osH2+p)qAb@2E+bxi4^7^mm9pgTrp8}CzEMDJR-Mgfaq-f^;{3(4eLed> z0QFHIai&OC(+L!Isf-|m07DQ}qI7VJ3WzLt=TnT`j38m#KN?hA2Eo;37Q&#;*`Q{yZ#96Xc^J@8O6@Yx3f zf%+bJgoqO8+()O9OW%7Mk@MZiAtkCte+xDLC1;?czvTWWNJW2KsMVfg?)o&uag?Yk zrDPyOTrp#Fw@MJ0qHqyTIdJ#A!LrCtdHD_sRiv^73@a)OUYguFH(kjwL$+GXXo946 z`IosL!BD+i=-oM4S$Kc}Vy(f<0-1Wn+qL{X&3f&{iO!A#=W0dQ?J_iS!A%3M6k>Y= z0RbWBIC9HMg?S1bQ^Ita;#!bO&8`SK<%TtY=z3&WMj*dt2T^`n!@*MW9##3fLRS3K zsi{}r`gwB4wICe0=HkUqy1RB?qyfM#?D|KXMaNCBOI$WD{ny`@& z^TMY9%D4$e{L#yogQnX4F*ISA=bGu>@hIgy)wz`X!^G?xr`JQO!NI*lwY2m#^7&_6 z|0&L}k6DtNgeT*rCct(FaRdI_ zX6sU6i3L-&q=%&v_g}iVGtSINMH~kP?Q30%am$x}Wqof5f8(RS$T#g_P})ZOcf(eZ z#nU;AH^znrX3la-I+~=l!*vj4%yen#{9IRQ_eDk{_U&P0oZ)aNOhD?D8187co_a&iW4KDKe~$J%h)^e>Bx zJLh`3OV$~=EE9%t{jOe;F!a)Z-W@5L<#k{(RfYU(vLi|dX8-LB53#oq;u;SdheV8-$!b%GSZB}zj##^t+z^`8X7 zbZ!^0hj@yo8A>PJcmz%BN2h}rDd%d2P{b*wQvY+UQu~Ac-t6Sq*z3-B8+9$0N9Kly zc7L+8P>Y=BIm+dI;t5EKwF&%hk+JqjwDyaxpeV;iCb9#5?oh`)nmcO3t;z z_K$f5+^c6Ail+)uxU;Oq@>1z1O#jwhJGpM6wD_f^i?ijyogOJSGdKY(ucOE1{`94RcI#{%de}k8QQ|KuE)#TXg zCvS9uj13-Pt^2}cPxozTG_xMs(9iolv?%~5Z=+IyeI55@MpHy#5V+2&kc%%(ZyeWe zg`bL@++xQVdH&5l%RZqF|45?$I8*9*wmkaEDA5{79&=s!x1;~SZKU}xN&6sQTkwlF zlpmHGcvQ=(!{olt9KuKI1A!RbM=4E*Ai@xWl@9~a#A`nd+qc~J7{o@}T(2t;(-Xky zd(`f!>FGB01AYQQb^7z*AE=LL7e7IX^C!D(hIfD^tZlnKA{ z)7(<0SwD-)a6y>-X(8+Q^T|tdXPe({j;D!zKo7$)BZArj+pH)% z1`M=i)r77|P;0kQ!WCwt?sP!Qnx8|`o;DySg=I60tj`y+>i;${HE?XI>7i}y0`f1| z9+HbTzp`;FZl;9T2F1ZrpWCDkB>i_B4)ZscKzjBa2==Hs0mL-?mH6OB+Qhoq+1(`J z9iOZ__+)*5h#2&jrL^jt@rnWXeVmpGPm#{4)@MQjYfV`yd-QgoGRHxr4L)I@KpZ@b z51{=ASRef;EUCyfXSF86QpjbNfbxx6)Y~0bD)h=%hespAiigc3O0qtioSi>3Uix5U zXxkqb3fTzo`W7v_hY`u8lSXA+SJD8xyC)i9w>5l472^vztejCTtD}9pRZ5<9?ITKg z4(;HNCZ}J4L*9(x*b?K;slmaAe*}_z8{YB+pgWX=5IfibOr!ppS&qyLaEzmOjI+ky zh`{X9aZjlt>k4Tel;iBiG&uoX{bQk8{Z4mJ;oY;74VQ^)WZeE5+l(S}ct;AzP|-C8 zxkxA5@3w#8OMwF^25KPC$)yK@4)#d8#1)7#PsAPEF`pnR>Q^UlA_=GwF#o_#nIjI~ zn4Edbb<-<`nVEY>d$yf?t(aB6ZccULj(3RO&CI$838AelBSX8)XT#Yf43K)yliRzk z%l)1zp~imt6Z{L!gm^I%vu2)|)i}tu36uJ_6}L?#N^?J*oL)#KPe0S&|KKOc;5z`= zHeMr>IQeakJRZX1T!vTchMZs>+1(E*GDf5Irq~)Y5T_FS(ii?5;RyBI%^jE@;dr?4 zmk?zqXm&seyr9P*X)iU>vJ7Jx61u4X+%oF{)pIUz&{a_f-~3{t$zQ zH^MHkRq|T@RR{AI>MZuQbgp8n2)z62-$=H9{!5e(2b6FnMCzm0hE;<^0gjm7ogi|v zX5B4=jRw?vit}eyO~2~Pr>gVgzkhac_^&3GqhF|t^Xx`_ETbieW-tiT=~krg&>e9f zChzrlH}ZpLg4v(TED~=s&{n)`^dwar*RCJJd}aM8*Y*`JhnIloYk&}kSWO=pB8@x63!|djH8u25r z_Y9aB)uZ)R2?MvLX*eNq`g6g{KweaTirgO?X>r$z&f(JEafVvSS^dBlpgQ;{l z`N~eAqxg^~TXDA|uwP>-_A=T+|4XJvVR$45M6x~dfNto)pJ|p zZCWOuVq_&PQNk7|xX;Xq4j4_- zJAC+X*KxLm*KUA_K|yji^+&H9f$L2LMK~L>zSXEP0xkoBNaXxU(N%7swTZu5 zkuPwFEPbCNBmStEExo-gi<|yuS}ng{EtUSLP)l}!3J068Qo?XgYCP=71CP2Kv0c|& zf!N}@5=uNfv!@rI=)^Y~AkN1`Yy*-z*=%rMwPVip(rc17kZV{$@n``UQA^O1oD1$} z|KiV*k>|f3jLv&Ma|oN#!2 zSpr)PiL9)EcTrpAj^b;WgSNFIh%{`!%HAo|7GIs3eow>iTPi5V4h=nYv{on{0~@~v zR9x>0L3~kZCTxU}yK=k&oh?JA<#3-sLNP5vBv(K@9IJEGTaw<@QR(cu(!3|uV3ofj zU7CUaZ#Pak5!_RGCHcZ|(lK7D?bTD84eSjhG;v;I0S?+tCY`4O0iqg`RCro={X zLmO^}5sbw~>M(oiWH5}MW8KvH>#B0`a$K%)tuqjAvkyQ~yjY|O8{{4P)(@W=QF6c_ z2lFHcs05w~?EJhgj@XJ(_=a&b0)yHbUaxN$2?J4(ygG#iPHU+p4l0v z4XrWgiL`)Gb&U-M)rgU8pRevmT851ki>$+?OkFYt5Ic<;fuOG6$?bfl*rzsi=Jy@92{Tz~k%WzNQyKPEub1qe=8O^zswW5G8aI2PT<=41hktlK8!sbcL z|FYx}(}()`7maiQg7VxE*HB~C#a%+ZK6)XTJoa|r_!6RLVdl#?L9v6bB#&E9$j!zl zu1(Hh;Zx5reqHVFW)o$BjjxNB)`C?_&oqQb}BGL`Mo z2hnPST;5_iX*4|0D@22l)jtdIbVs#N{9^x($MJAh8Rb-M#n^U*NS@g$_i9&hx>(JA z!Y7Of(l079hyD#*gMQAD8{I(ImIcv?=)Tw3yOT}bz58zumNh}ksi+DuYb4&!I^_&; z)QmdslNt&94TIFfC^r9_p`k}UgWsn&rl0P_Pgh7=9+v4@xB+Y@w5>_f1`*;UJIX zn`s3%>>cS_{W~5!QLLmFcI}#?BUXb_vITtV#o1cBo6)Q7nVC%$DGEtRhJ#z`WnI(Hi)SZZ6HdxmtN#XF@H-DdD{cUXUSe> zgue^cJVM!jIyAKKQmuC6GzK?wlawP zJp@ccV|_75hbX6xy&3mZ0yjln6;vxj7=b7z=y7qOlAUEa0P)qHIom`FiPhN3H>8@@ZH-%BU z(Ua1UIN&X7y0+|l7M4Qz{}k^?p01$ykmnTeZ!38bxYtNfUres2^H2JeFf7wW{* zh$Up4Zwsp>TvjTHtT|T)j(*d5mVFVmu#K#IaEHSeSmM3|ME?dZQYKOUOkcR%Kh{6= zAr>=igY!xs9YvXQIV)8!&yF0sNSe?=dQV5Q`7R2%r#QFdB;3(>!PL%co3`DAeLOB2Gy%UJYehPh6zq46XqC_*5Bh6Z(mhaWN zYQP?{awrQSlwgleP(G)#6gIGET+iYry}{WoEmb={0qIm|F|Vu}Wbi|H>Fq&d{X*~B zJ8*=h$RnqeD7BIb01ogCeT92WwvVxeEQfdi7e@~8&h^W)Xjid|O+R5&#ICIL3D!ra zp%3oKI7B(;QV#K6!RGt*{%z%ZIce(%^?RI>??*_ygKywUAdIlK6+G5CsNl0wQ#CDW zwDM^U8lY+iGVRncBTHb|VzNB&a!>wKJ4q3$HFL3%iPKX#hq_clBxk&k^Nc0vkdJP%j zr&E(}oFGbVHs*N6zv~ett{Wa2%ofUD%sLAHlFaW$Vb=rI_dpCDg4bhZ-|))+&5)+{wKAP2 z9ILgYW6~v7KIRe4W?61LF}I}H_)9NNPQK_`G0BgXXU4yLqOWgyq*Us80oFGRLGL2| zuTkLdK@HnrIb>5ueEM4dJ1T!PF3=25VpNeL*V2L}S_83LhWVxTrd6CrOH|EWBeCMK z?rklox25?m%w>5iSJYH)=U2WKj>=PE6KrhxX5MnrIW)yHCyxhTK%p**-Z@UnA+y>A zM7sY6>Fq}(8ZBkD$!fKT4{#QeqxfDg|H`+uiE`hOuIgOvVSJb}DQ3fJAvimVod;Eh zrsbnlD5u$2N0ydfB#*zG6Lupuxg6rWW_6@7vxrchETu_ZTf6{>T7@c{rjRqGj`^k> zbmjKm)G_q1S12#y`Z7BSOzr_GP_;T>#byaBl|GsH(eN_IXw2-|^}s75Y*2{FUYf^LxosZRH}ptW$O>PB zARi;GgL?>KjT?xkKYTwZd^|xbNK_D|gelIrd&6BN3!FKkFIPog*FPnc;0_W3X$;`4 z^{?Y#z$Lgc6%IxVI(>FG$S}v~>Gi;Yz+(zp6+CV+vm6Z{s<};UsBvgGS=KP(<~T=o z)l5yk`EqQ{wf|kNerx13kn9`c%*o#YXuk>6_ws?bu`xC%UXAFDhtTNyulNk8i5>_N zB+%Qrp3_%q{u)_?j!FpgjJ2iE-MFG*w=T>`~ zn(D@NOo#KK+qfPE1`TC}aES^W&nOuP#}c&mMJp_VxCWQhA(uu3I>rubz;(opFpeo& zpPPB){h!~%7eya%1}>JCUR!T_Qdh@*TxZmFu|$e8C`C??ZE~%JKfF^AUa}V&l#IRON?szF%?lHNJUn~DvyHmop5TVZ_nFb zep9QM6XdcO6^x!QRSTs{XU|Uk!f?vqgSIk0!tjV5+K}`i1rP3|2Y&m+8kI zC<={ANE@=XUSW4XW^Q^kkC`^VhZp?OcaQDV!bc7_^uWVGLF91<&PV6Zoecz9VQ-^c zQG)DX-stIF8X%})^?XYYoOS04BUJEcm*?Mhw@$!Pr(SL^TfFT2k$25VK5iq@o>IvJ zd9OdLNt6N>s>F+OIDNNK2P>qU?^YoRE)rrqo!Do&q6^gekBJ;JntnyDNrM>a%;U-d zjTZ!&@B3>TnW-E(OwP_OAhSHBO#KTIo~q5v{Kn+K@Oiczg@cGfyK~rtgKJq=b7XIH z*gB9goqd^~Ez-rwTRn)ffm4FainWnz%7OhIy%RcbRqR#d&C8}3hk-8og*jr!+FCp! zV$Zja4tyB$LJF$~a6;uuk%7GLu6vU1{d{t>!peQ0d5R$FN^rqg9Z5`uP5+&D2TP&g zHd3jy$A0ICV{hTYz|5wjTd5Y z5_>0u%)_-p)oI?D{KK{0*Ca|PM;QfQ2<`nFMhU?0*@_URaSrN4Q90MKtQ*0RT@3z#x3Z-y|g`nn1BEL*Zrv3WNv+`X2%Yy@z zyxc1=21bPy#Av!a7?)rixwmG3+P3O%)(y=uggB%sbOZVOl3L-uzTFR=n!WV45jKYG z^&GveNt7H9!zLU~l%mMyoWeH6k;n5bJjm5{INEyUO{zDiQH-6x(GcJ#;CN_-RXrcr zMCw|}FJxdJ1`bMdOm2ceSOtVz`KcLcji(6bW)C_R=f46smD519Fe8GeM`L^q7oy`E zIR;!wYLNBn;_LS9^Sw*u^lP<3_7!p`UL7wSNSNcgAJK(-jnn01!LgS8Pr148oKUF- zLB%;^AT(-$Xy;?2-u&`ysBfsG@G(OCQNI&IW>UWbvJpiN8MtTQv}%20z4RgEad^Q? zf?PB(jF2aCaQ3xAxqw;X;qSmOHlHZt5?BSI&AX=F6w0@|!YNKnoSnx=r~x4w4Q{me z`W^&MXzz+_Sn6sq30d*^)_#GYz)rQ5yA1-utpTvBfk+c!iA_GOpqDV6nn;*)=m;VK zF3%Or@OZ#AI3*j#1`%DqLY&W$lKr7EcoaeK`-;fwY0930r6^iK>*@TlhT=zYw2Ihl zy(H4;b&jPq28$4^uY<(0de@6+zcI=O4)1_MCBoU3C~+D`=keY>o|X|z=@3<2BUPcK zM!3wmBc4}jy^~U$V^RR?xak*Z`p3h={g~4w*UU857~ME8&)+%bQOM=Fv_e8>Yz#`j)dS6hzcGx zru`6z4y>GehGi4xz)X@zx=t-6NQh3(s8PFRFS6UiHAv4Dae2jM825Vi-+O=3i(*L8 z*a1uL0>h6!9_FkbzZXSYNhp-3;Qs(Md7qsi?y`w%G(2oHtVxuNYRI-7X!zP2s3_?e zsKb=i^ zE@f~+#j$mImDB8Q9-`EmW)W}r8VPi8pzb1`-QCA1(YVCnT(on?jMj&w*QJGB zlPDQ}fO_UJ<8_e6TR!>LGkFkWX+T)+klibn(^JdSEdSk>;Tk{ea679NIa;E!lPPG0 zTVDO*Jk|<@ZiJ>)i89XZSA4o6a3Ya4)8)UttJPKGs$H#SkM@1kyf){P77+V6Wr1;} zXx*qlR%kWI4h1TX$^j=>oDa^i81&t1Ir{QT5Z=ep-J_yuJ!p(Rd*)=|s9NOo9=anL zxbOb37qbTuIBcg9fm(65{#yrKa@_IPei{x7nmcoby`2-mqd{x@`AEJ}^ z-h&5|onQEB;IJbv{vZqxipovXzWM+eNX2Q@%D&0#el_>CiPF)o#%^g!;A-?%PIQ{| zx!|lVYtY=eIE$9br4N6HWs&?_{k=qM#|7(=tEgQ(yfmh1i_SUcs1lf1KY^U{oU(iS z$k7)0mimz%N}lK%O($r3(oPY)2&#V-4~^bhzwP#=L>!h<5aZ&}60QN}&(Vk=e_wG~ z1dV4f;mLS-d=wjQ!*# zjz2gSxT0PU+%z5IQ4esJ%8-P1C<>!1se2 z4>@eKX>CX=`Nwtcrjy{>jR$fA0*wi{K|1sdvAe|Oim7+r=6)&I zvgYnQLf+O4LS7`_3*Y@V@!ksfWLoog?z%h#0phBz>Q>f7`p#j3&gG*~Vyl4(HDj2qGb$#i?#)ww;HeaCG~*Q|bCwfr0Q)d{>8661DzwO1=GT^}@zl+g0=*a>W_mFO81iPGm038$-V4)gUg)v8Z~U z;UTY+npQ*J_Le$P<2jPO0bu?-DQ7PvV=v`4f-%ho|E@`t#YINFVtR@KPf=FUs>je>~1I{b=HLqo%h^A*xF-vwI zI52qX?Ac{sZ`q%doFve*8|e^(^yr*9Z>sPL(+CE#K$Q81Rqpml4J4aE^t+7rHIKxT z5DkG~<3sazK)~>Gl|MO7IMqo{gBmB6I>G@utHgauum0z^bv^KdYSwuNxJ8`oG5$nW zC_Z_CE6tEo3Etb`#MIpZSiEhfVc<565|zp#HzI4x8i^9a`?>~KWs!R^-BjH&AIytl zoXh3`O_g#$t%S7}U>xcsM{TWBBMA=~hyLO_Da*ct<;Dv$Gp`}JU0+zOq>$tEQ0FZB zYo4Z3PxE40xxe+Imb?~VUd<4I8agooSYq@N5mXZBbxmXtfNLR-UFEk@MQ#EU!DK8Xv#^lk#He4-m!v zlr(RFLL5Gv<5Qs2da>4_j(17Qd@Vi7hv%8Pyu+Oqwxh2ir|X##<-$2eYT6OjF#(3& z0^EP;{IOLujRggGLGW_B@akt?Cy`6!uvi8A9jgKYUFBtsvCkIUm&- zv-8iK*xH&xT+@f$@hlF4!j@iKQC60L(X5qa8QUdNHaDxC zPY~VGY2F=&1AUjH2j9AQ@m|EYH|rU!cH`K9`Q+pN;^W^-I;wg-oCZ7Km`q8+`iMm_ zQY5u;@Pp||dX8$m0Vg}jU_1pr?&bG+(mc$a0gAu=hhuVdSy!1ER3GH?ULvu@EE$diN2r^BE>Xdk$>EuD zT7GtZ_SgmDY)V+0D22%QQAUE_cyVxW;x#z?j#?qz%PPfw;KgZB*#Rnb0P74^ZyC7@ z94Adnf--m+vRG3)-76>-P#{DNtUy^AB-9}8)_0c(yk*4OLD^V2rgv2;*ysL&gmSqD zv1;iMP&-VM8`_Bon>dJRX_ZSRtAiyHrAi#Pc^Ovk1wYuM-hpdm@!DZ#=GAwHhaWwU#B-MX<*vU5L9p;nNlC^T z=7}4IzsEG{#Y!PPGu)X>p6eW_4UUcURx9b>vf<&s!%5b^6|aPWB4(}3(hUT;fTmTk zwX`r0G_=k&RS4<(Cl^H}GNfTG4xU2g`|nA9adL8ce$Sr4;#4`=R;(2n{A#~K9lj16 zK2KXwPzjNm1o>T_{(P#d_TA*-F{Ok}3+oZ3g#g@dFS0D!1=C~QR#m12r?vZqRkVFYA1EDS>IAX>3!Nq>i z*z%%5=ysTL3*1}(Kpj=fxo$b$OmFmncf#91(EYT%zU3*vB2-&gx+x&I0s*_$3dU2_ zZy(qfjl}VRzhUl%sF<-*pIrh0Cdh6Q@Q*{BaxEOxWN?#gEOUvYR34kXxRJwkVv+gZ ziHX-IAj}tW+`Wjx|3ipG&V)#io@a~Ky9^<3Oz$m!kQ_USX(s@LO%53s4}kuy?md z&M6zv5yX)rzRdk6Ob_0~+v$m}QgQ+J9@2z`ZhC+)Pm}3K5a)NFWzEe)m&Q>4PDW3{Bk9`#v zCmeN9?W)yErLL~N`LVH|=&|lo!MBYO<+2vF{H*C(kl*;(yl=8lD4j&C7^TKXm}>7t zp%ply@m(%a;S=UE>md(uMZSC~MMP3TA+kjR4e;2W)@om2-}fb=d)=}j?Z78bQv51t zuruOW7mBy#0-;gAJ z7E4Ywxh7?WfOK}nfN=c@< zqbuP~R`)rCc#cME(|M!0HpAL-PBYF%o@)9hot%981P3p@OrvS6KxhVuOJr#7Xm5U7 z{sdx#waPwrd@Gu@hKP9C5FPU+_EtU!{ol%SOD0PRToSMINwPgBI^pB9ds>B&+UopU zE38_dbC)5wuBb~ZtzQGeqIJw(nVNe2!|Caxm-+g$AjsBAT=g>t*`0@=UZK(W|6L|Y zxkirr8FzPRU>=n_?YPLYnsehkQqGIB#kXfVNO%*LQM%x>Wi?|82~>Zm|GC z?o3P7FQV0ETaZ3rnlO+#2on`zfm32=5dv^q9&(~|AdJVWuYkK+$d5>OqFlmd;!P1w zFLV`VPQvltKnWuQpx$b4@*sicSN@LSD8#FtBI;Yy({raWS6yM9lE?me+?zeT$)z(F zTm&8;kS!B&j{B*L7Y*c)D8q=oI;XTc5~VIiBuK4*a$hoj%Y$(U_p&7ZuSyFw#MoOb zl&bfFSpPM1pZh^38kZ9sM1@sU2coMQSK*_XT^$}PfDqvx58sVvQ%3D~h#30@y-9Ks zaq!(zx%(y|N>s38kIiPa;@=}f{ol03`6Z6Uf+0g#ookRJfQj!@Y*f>i`1OCW;re?w zqDz_0QuM4qf=Xq!loopswUPm#5oOj!ERQ5Wj8c3JL?!4}4T5xjth z_swK`SRnlp_EAUSER23(F0^`vH_=;^W;-Cp&q0V^f-qSshy*F&d3AMlgj1Y*m^bB8 zL>!}5Z=`ATpzh^!U2JvqGXX`>SNLwN)#g4myjZmXiU>4WuteT3GNiG&f(;h6 zFHpin3d%X9iUt)vB1D~uuG+?cJjBs+-Y_1sb=ain+n$K+l}UCGoc(gvQ9H#F$@46c z+)(p`RU5a?OU2egq5K4h^h-oL$kis*M563UwqxM0<~0)8+8IW;BeI~8EH9~b6@;-* z>Zw>u$nK%Pj%206_jwmr>(q&C*O`IIIz=;`WBQ(5^@MZ|G9`$Sw z?l)f8bfVn1??~^=eDw)9;J3h(&(mbp)s9x7^&*eB;LefYl(_|LtAQs+Hk~=^`Fjfg zn{()-+m}a7X-3%>86nHHMHaZDK|w6k&o@_KouhIekos+^{bi(p2BJmyX}!ZT2plqa zLr2k*!)dK%=71<*jP1^y;P{Eikubwoq?r_>kmPX|Nq%o&_|bpt?kIn+dHldyIo}ZP zX~0wJEgHIu8=_X%Scy%w8)bpDe_^5USs?U#bnd^T$M++AT1Fe`xgE=+)dx7HNs&}T z>MJ3YaZI;_?V?;()&6qLEs7BLgn1g++0M@0mzI|9M~is6a*eS0`6N4hxND$r=Ut3p z--Jkhhjqj~`GA&JNLcjZFJ_2c_d~kExC;1b51ZQ_YrwH`P_vIhU+rKBMX7`f*m81m zaB$n?+}vp0^e3;u*8S6jz~&L<_QQi|x%ZzU0{vUM7m+L78EG+&(K*pMGOL)_xoZ!i z7u#zX@t28FYqVFoRvXKvSLT@d2hs>3pG!3oX+e~xxA9@PtAFnJ(%eP4=1miZs&^b> zdH?sQFkF%&BV66DOBpu8fkuyZU!eEzNzF z>B9}qF$0IZ{VtRfUk3{R8o)e28yW=Lpm$f_&QPZ>!!kSyeQ9A<}U%qmJuRG-uk=A5V&rl?C*aVWAyY}V9);u zVSEK5V=b*2a-wk#soGv-@^ZAV@6u^TzKSP_&vfP|dZ^x4lwH9wF}nh_K8s)A!Oqgm z$)%-B7*pS{2$c>LZoiZ5wf`+6%)bGKhY(%c=KFd8u#MXp%y#0axEH^u9t*MI76Ftn zeSo0DbO0OJcr-zrjF63zZM8w2T>mB7#!Sl z7nt%*km$E4{8ynC2(l?g<)gcEo<5W`x&qOwx~Dx!SbpDV2t^wT_d)o6gE-<8>$n4;pAVsD0D=V9}1ug`7WRhm%Et>T!&;Q%oA)``W?0^ zA+ow*x1G}RHmPOZwmqKh+1;~Zx5LJ&1z2L=bOeqoVY)n}w>rgIgYRN!bktqEJM5Z$0F&rf|=04WXxr(SI0XqNLfw-lX z(36Ah>_C*)*^ojIVVfK?7+BZmNoL(dDxW-nCEEt#Z%4nlv!`ocSI4&7W|n4tKE&xZ ztj^v&U*!Cx|AaZ@Z&KSYqtDqLD;g2ZtfM|A9_>f;{Q1 z_5o9bQOh?7A@0D%yq5$jv2F%3*$(q@j-@fS_jn8(j+5#ecUuvP*rW(Yg5QV8cOQ=W zZsYvjv5vtVljYglv3m?7e$E=qezQY8? z`L@A%xJw_NfIY|(lJ7PXhUOL4JSoS#?IU;a$T9uh454nkD&9_i_h2IP5=41^MWvew zww|sL0vjgEp`p>?tXT4VdzL?n4bv~n&k02(#PINTIAlbmF#n-{mm`y%?j=!$tG?Xf zb2~z;-nu-!BfW@aI_*QnGivJ1;FRj%+QJG+BQR&7KEp@|3psL+$%|T0fsqjB-G_0&)0qv z<{B5sEwxP+hNg|dy7C)GLCPttVP1KZSYFuH?<+!J!$dhf{qpF*z{AH`!DnM=?4;$T zsJ_pg_}ZO~POXpFzO%CxHTA0IRw6Ig9(|_)x=5*V$aT#eq1uV8S!({?xFTIgM^`e5 zJNohQ(Yk>_#GOVxLiu4p!7E?(AU|)%gTXggEV#%)ZfD`Kr)rhC)0LUp$J@7;E)^E0 z$GYdfJaIO8Y1Q2mhd4@Lwr_TL9_P@dnfcvI91BD42h(EpPL^a2&|VDY<<9z&$$H?0 z&B}+mM8cFfbm_4j4YeYxPOBZ%^7geQYWZQijN?BENnfs-BATBB-UG44oi-fjhM4Nq zBB!&E&QYu${4J->2{nJ;xQDpuXf3Urn4Nj+hT0t5sN+rkuwkOKy@)v%Dz)l644Eu& zCkG%q%u1Rgs-DtZKU9oVtTfokVZoXX4^DF#jkPMtiBf{h4FX`r!4+k&(HyP?0(Asm zE96LPoSq)m?+Q_Q;rrRy=_t-pZXPd3$e3R`08$Uoh68LSc!+jj(X1;&2s24PCW}ke zj@npxXmNZndvw~vYSB0c6(zI=p`%c4u^K1@eVJO99F*^sW-d3V$DSqp56CrR-LxFT!RG(qNr~1MVfFiiqEmZSrN(jUT)#iUA+k6Z%6zK z=g)=nEcWg@5JvbbwL3>%y|52qH6$W>6!<9a21QcqAd6@snmOjg(#YNIOZW5sZtfMT zg2n?Pl)Yic?W{E<;t#~hKfY%8U9-U`OZmv?k$R+n?n%O6#rH<$tq*zI9k{e*RUu}* z{hjZPG|trocYa*HbSW7dy&MK1>OdY;7?>)BNMz~cL}HqZ9;)#hffEZz#64}ohUN=(+4s?{S$i^VGTt;yFxo8i`~ zi3oP?IA{OK4IN`$vIvft*~{lQ-{%^><(+SWJdY_nD0OyS4s)x1kVm~poR77Z*#2yO zDlPO{kms#vI|m1l*yZ4gXa>Kx-a`TUROL{k_$7Q5$JY*xZ;^n)-v%+&iHhGo$@-RBr^CJ@)BAUfL@($^DNYB-^av!Bh+ORlKV zg_nCP9Vmm>Kwzt90?!^5{?;)Mq3%gK#t8HhKA~T^IB_M1%X!MJ`$i$qK&Oo+G=AT< z#~)6!+W$f(zsyhN)JA?HjHA6FpI`cXB}6k$9&!W{VKhA0vuAG*$LeUFN4u)K1HueL z`xv6#G-n@rjGu^?BlcBgvI&v$Hpvb9S>n*bNiFNOuHmXgyU5DKMNX8G$TkAsyg9Z@iqR-MVi+1e!zPHRRn@+NI@{R?*JM4n|FBlVn8t zFpmt1pZXeQorAO!1GG#=F*N8pAd1Kl6-O~IM{f~2N2DuN+d73kgxJa|wnfeq6(2$U zk7%vfEOOU^_BYml8B$)6cw6K99P4eHW4qP!eVA-I&cE> zlQ8v7vzmI}G_4^Jg_0_{IdAGgJRGbJ1*K9rY>0fl2WL`28DwgSD&E82`at6IS|KNv z_+8H9Q@mSG39_$mAZS#b!};5G1VX3}JZt6M`aUQ23iEL_%yLPm0tV~Q5^}iOdY^@< z{oR18ahIj>)yk07T#Ni6>Y#5AbQQ)|RY9*zwe{v2A#hzpnVdeoz+C^`f#FAv(z|aX z%07&`r!UqeVD++UMWl&{;IqgdI{X9=Cm=}=4cgC#JJDYDFl>kP#@8jHikcCW8H%F2 z5NAd1t3s-lT8Px9(Go}vq}tA~F2|fV9+DalOI2}F=CIVTA(&Hr!!kjg>*ZX=eBu>% z^T*SxIVlXT=dy!kxTGOxcWELl&cm&ZXSzI}mg-&c5r_rt=w;5vn3|kyh^*$<2y(Zq z=3zW1Y3?V?169e~K@1LQDj?b9u+RG_zc+HIKgb|!YVFXpr$;Bo3-3%!9NpURyc|rM z{QLTdGFGO__j>>mprQ|fx8cD9Fcr5X`=Tky-Fh5OHdw_ShGa1+(tT^)!acCB0? z?4~`-hxh34w?U<291L_4=aZLe-Ahv(QoA(G3BLnub5BYIiPzol_b{?UaZQe?sjb}0 zxs(T;?%TgVa3G0hBOxaW5gIxPLBi^Rb4pBMi6$pv@3tuZZ!0FWk3Y1BKaoIkLUGWD z`8NlHd{Ai1<$Q&HQ9uLFa0d{L-bh~07E-tYizD_a%bN;RHvw*C_iN7RQ%e{LUFlR)#O7e+kP*a*(?I9hT3Y>s$%!}LUaJ~2 zGjCqT9v;58@UphL{S&hTxaPbq%ZiUc%!d)kw*iB*m`l9Cn0I`OAlHKAr}KU@iIVld zqnGz3N9LxsSFrJ_?%*KN`K7dWd0}$<#~5^PXr%4xS~y>>_8x}}ALKer^Fv)F7?Dv$ zN^Zj`sov@#irBQiUG&$ZSn%ps}@H{Px>gq1kRs^H^&&58t%}`%(qYXE8?5ug+Gu zNg=T5oN}|^P*_+ROp2*ar0zm7gl4dvC?&|qDc4``Q_PFzXGm*iAyIJUbFzkVr%n*d z5dFHFlM`B`9~Ksu8W||LRY^N>q zN2}$t_3p-pzzs{3%pi9ov>t$hx|_%+4lBm7K8XnDl@rx+P)iK*ojKMWM@L66N#igf z2qG-%2P1GeExRPT$wO`xiAM?0oazdd_+xq2SNt8yt`m98mw|(Sn(}D??)swjS>TYP zu(Sc!vn}otaSx?cXl-*|pm_xeVZnB<7>r!i=)(B?_EJ{clc(9b-+U0b5s4BXK%a*o zD|dp(+ahT-0V_ArW>tGp7wTJ$-Sb!ysz%i!zPl&J!$P}6$tGgbxS+p)M>tLEx_jor zyCTbU+Q@2%V0yPbDPBqls}V?ER_i^F8?1ojh-gXGl&UF~W4nRdT^#v_ZV9wpSz_G5 zxiotn_5AKg;*J&v3e)EyuY*=W8YVcn6pLEFwT8fQhpJh2XHU-~`{(EHVaX|+vC$f7 z>-h$Uzzs;0M~a2c#k;dwfrV|3GE>Jxh#WE=Y!lp8U?Nv%Mk_!paVWB0ymTRmc}rm{ zQgj3*vAWI|tYHe{L6nsM^n=<7vF4_6&fDB7=C`Y6n9zhonCHK=fQ1lcTNjU5&@#w& zMDaE7Lue37B~~*QIN5q+*|skWKYjf1s*a(}Ti z`!Jb*jirxU%;jUu$m&D+%4RJph?aNlDjbUA8+ zqod>rRyyzQ+c)&%b5~j%Y0Y@+`G$bNjYpLGx=ZOo?M@8P)x2t#8G-~94vz(4gUf!z z*qo^HINnA6QB2XsFhx^T4Cx{TglLhYs92G+G(&Jv2{+T`)ijF9Q(cqEu3fw9?npQ* zdJS_2>y^QQ9SBA)UTE9EotI#F=DAwP>teYJaK90J>{KXh@7`$C-kQcZirAV1Dh4|M z@TyMaA*MumFRMt0`Ft%)Bdx`4J^vgaaKjO0f3@7taoGof#UU;=iV-Yeo@CU8_OY)Y z4$?xDauX0Sh>eqz<3VH?+a6knwYl*c!JzJ@r_n4#rpfH6M3?ICmT#+7<>OznO17U^p--CY!JCVhHyR-h74v z4lbmNy20a!fvs>eK|pN2fx;7|Y!TOwNwzn7U9S_7H4JzhEqPS(TnRTVy z$o(r}&L}}g!-6;`RVr{05Eh1JTm7XV9*Db-Ozz5xsV0wGL@8))l5j&2Wv!6*!uz&? zQgym;^*oVPM_9VXkZ|N2%@7F^M4iF>?3tue`+t*k={(-g zIbf>X)zMk&DyL~*S}lEn-4MTla^%aP_`#T7;$R*Jp~dBlwTZHdXM%?4YNAF69QqPJ zf6Na4r?W!!rOq^+R?=laS*%sdG`H|fS}Oh<=!kh>hO_2aX9>;AeDzZ2(u~|uE~x@5 zc&>A)Cu~z~6xjN}B5q-b0`#G@6>cI3+)zZBrPWcCJg33S**a?0K^cit?vbzexsOt% ziVN;84FsRA#8wl!EPTS-XEA_zdTQp4Rkt$@4L!7k2e2KG!JVWHL>akNoZkh}G;m4@ z1=7hCD-sR~!kjXQudRg3ml*jn(O*t$$%`|S$MCMOB8>G7J@%bK%I4!F`Bhq~l7>jl zHp~5I7*Vx;X8M=zMfm++_G5@ zxoW7#8!X@a`OM^9aBOu2KRKjQ0c)9$NDy?XOpw@3_nlz&uoLE7WXj+{W^)I>Z@rl z(lPEk(nRt22UrLF(cHvaZ}8kIPxEst+zb$CV%QB;+ccZr^T6q$v+19~y>MMw_yVVP z{4(4FEoIs*mPT&XLOr~bAfm*Y{T&GUSCwMnwW-U;TU^wv-N=g<-<%&DeoXF6{4Ab5 zXY{%#TB$2@G|AI&-4NF?qfKiZFT(5kAL^E6aOd>$n@Yr?$#YDDuGnQ#Cqg)3B$%Bsn3xGik8P9kmFZX zkC~a*E_2B2chU~dN@g!91j$lKYdft|#=%4Sa!p4e&(jF<-z{c^rza+dSpLB6${KU$ ztE#|Oq@OzkZd{^lfaa;{%+R6Z{g($XWgW$5Q1L$sLVguG`E`);j>yU6Tw(6_BT)7~ zU?A|^?CdeNEp0HQ$z}5Wi2T`)7<|~~j53I?5}=!_eJR`L2%lePt@GgmL zBxDfg$k5QkKg6|TFUvG2e$sD*d2$rX&FdWPe1`iE@znEbvQ#}ky{&gDnb?>gq>WT+ zEAGz@0yhCs0*vU1UDe|y_F7&l7R#4GN*CkN(AIWBM4jvp8HZ5*9--~KQ`4o>*95{e zbNS*U(z-)M@smeIMNYSYORCUun^h-fdv^=Q$7{GZ{*J; z&c=p@roUHBYaI+k9QKjzgut=4Ljjhi?~>Q^mBrf8`S~~C?1VMdSmEo|pPL8*HwRI+ z02E)baGpco=d`LHqFmXNmTHIbzQ)Q${{FxI57mzH z3ru8h<4pUGTD5W#LxS@Y6T^%IyI|4kbGE{*1c955C;>imztaoj$Tr9wK=k>M~p$;eyM%1M)q(Za%!8<&MhgsoSz;6TWWSyuR{kXEme zD9!EnYnbx7_%K{t~X@k<44hZZG~S12t?ifFG5SNri~ZhoK35l8q<~; zTHtzDlbSfjjq#CJ=g<_NOGb`40lfzC^(u?pigwFEV2dc1b!nRRUdBlLL%hOq$3iB| z9D`-ivY0D=LU__%hS*wF#QZQ@>e5HfR@j2Th9Gc5nb~cq=ATmJ#l?qeJ>4@i*sD&! z^W4tWBen62sE-hf@j&y6T#-1;Hq&_(L_D7&-e07J?5}6~(+`vB^Q*3xd`i{d%Jvq3 zz)e4=-26WHcDYbE^3z(%VX0Z_k$i`cNV{NyJy0h1nmhUP!K{k${1S!@+MMElB*7Kz zzPtbc0If+xK~xWN@-gOpPZw(GTgkbjajj(YE4h{9EewIiP=5=z@miWzNDh3tYhZGz zuiB+G4d&h0u)z<3SB;ZaF(3#5pF9bs3TTGlo-oux#yOki>7mZqso*7MrB zZ9!lQ0$UIR`dEx*o5BXxMqQ2^l7;H*1b+Ny5k~?TqaTvvar#EU7#34GAQiBvh2PxiIM5O58@)s8e zMMNB>BB;0sf(}wUh&U)%(81Nm;Cu}tJ{Hj-t@ywS;-hHMQlv_*NbWrjNg+xW&-B6f zI^Q{;8X-Ir94IEqbQ;2W!-rCmOr#+U7;XrLfHP5+UCyGY2N(yA86L?#SdcV~U803S zNjZSwqNEW3+ZVDZx^Ea1oJ8so1jC6Qx*!dqB5Akn+qOpqv)D7habN~}KlTH` zzzRdN03hjf$Mzbq68QQLt1>{8WuLPsIs%*m-WO=8^bz<4^dkW@fu)_@hNgfliV8@* z*kwUuQG@-4O@@2z;xC55G=xr#=4|J{THw0jD8OPtqm(2+)!K|;5@~~B%dZd$jS$Yt zo)yd+4)vz#Jg@*z=w^Z82`~@b%HbU_V(Bg|hKJMM-Zj859Vh&SQj+|XJti2Cv<-Nr zJf8%{1x-o21%1Hz0`@2{)9$^Bz0i&)+QP0ATq)LS4d6u@!YxlpW002ovPDHLkV1mp&7)JmA literal 0 HcmV?d00001 diff --git a/client/src/index.html b/client/src/index.html new file mode 100644 index 0000000..f5a0995 --- /dev/null +++ b/client/src/index.html @@ -0,0 +1,16 @@ + + + + + Dataspirelite + + + + + + + + + + + diff --git a/client/src/main.ts b/client/src/main.ts new file mode 100644 index 0000000..bc7181a --- /dev/null +++ b/client/src/main.ts @@ -0,0 +1,41 @@ +import {enableProdMode} from '@angular/core'; +import {platformBrowserDynamic} from '@angular/platform-browser-dynamic'; + +import {AppModule} from './app/app.module'; +import {environment} from './environments/environment'; + +import * as am4core from '@amcharts/amcharts4/core'; +import {useTheme} from '@amcharts/amcharts4/core'; +import * as am4charts from '@amcharts/amcharts4/charts'; +import am4themes_animated from '@amcharts/amcharts4/themes/animated'; +import am4themes_dark from '@amcharts/amcharts4/themes/dark'; + +// tslint:disable-next-line:variable-name +const am4themes_myTheme = (target) => { + if (target instanceof am4charts.Axis) { + // target.background.fill = am4core.color('#DCCCA3'); + } + if (target instanceof am4core.ColorSet) { + target.list = [ + am4core.color('#489976') + ]; + } +}; + + +useTheme(am4themes_animated); +useTheme(am4themes_dark); +useTheme(am4themes_myTheme); + +if (environment.production) { + enableProdMode(); + window.console.log = () => { + }; + window.console.error = () => { + }; + window.console.warn = () => { + }; +} + +platformBrowserDynamic().bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/client/src/polyfills.ts b/client/src/polyfills.ts new file mode 100644 index 0000000..03339b5 --- /dev/null +++ b/client/src/polyfills.ts @@ -0,0 +1,62 @@ +/** + * This file includes polyfills needed by Angular and is loaded before the app. + * You can add your own extra polyfills to this file. + * + * This file is divided into 2 sections: + * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers. + * 2. Application imports. Files imported after ZoneJS that should be loaded before your main + * file. + * + * The current setup is for so-called "evergreen" browsers; the last versions of browsers that + * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera), + * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile. + * + * Learn more in https://angular.io/guide/browser-support + */ + +/*************************************************************************************************** + * BROWSER POLYFILLS + */ + +/** + * IE11 requires the following for NgClass support on SVG elements + */ +import 'classlist.js'; // Run `npm install --save classlist.js`. +/** + * Web Animations `@angular/platform-browser/animations` + * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. + * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). + */ +// import 'web-animations-js'; // Run `npm install --save web-animations-js`. +/** + * By default, zone.js will patch all possible macroTask and DomEvents + * user can disable parts of macroTask/DomEvents patch by setting following flags + * because those flags need to be set before `zone.js` being loaded, and webpack + * will put import in the top of bundle, so user need to create a separate file + * in this directory (for example: zone-flags.ts), and put the following flags + * into that file, and then add the following code before importing zone.js. + * import './zone-flags'; + * + * The flags allowed in zone-flags.ts are listed here. + * + * The following flags will work for all browsers. + * + * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame + * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick + * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames + * + * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js + * with the following flag, it will bypass `zone.js` patch for IE/Edge + * + * (window as any).__Zone_enable_cross_context_check = true; + * + */ +/*************************************************************************************************** + * Zone JS is required by default for Angular itself. + */ +import 'zone.js/dist/zone'; // Included with Angular CLI. +import 'jspdf/dist/polyfills.es.js'; + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/client/src/styles.scss b/client/src/styles.scss new file mode 100644 index 0000000..5e5eedd --- /dev/null +++ b/client/src/styles.scss @@ -0,0 +1,278 @@ +@import '~@angular/material/theming'; + +@import 'https://fonts.googleapis.com/css?family=Material+Icons'; +@import url('https://fonts.googleapis.com/css?family=Roboto:300,400,500'); + +@import 'sass/foundation-sites/foundation-styles'; + +$fontConfig: ( + display-4: mat-typography-level(112px, 112px, 300, 'Roboto', -0.0134em), + display-3: mat-typography-level(56px, 56px, 400, 'Roboto', -0.0089em), + display-2: mat-typography-level(45px, 48px, 400, 'Roboto', 0.0000em), + display-1: mat-typography-level(34px, 40px, 400, 'Roboto', 0.0074em), + headline: mat-typography-level(24px, 32px, 400, 'Roboto', 0.0000em), + title: mat-typography-level(20px, 32px, 500, 'Roboto', 0.0075em), + subheading-2: mat-typography-level(16px, 28px, 400, 'Roboto', 0.0094em), + subheading-1: mat-typography-level(15px, 24px, 500, 'Roboto', 0.0067em), + body-2: mat-typography-level(14px, 24px, 500, 'Roboto', 0.0179em), + body-1: mat-typography-level(14px, 20px, 400, 'Roboto', 0.0179em), + button: mat-typography-level(14px, 14px, 500, 'Roboto', 0.0893em), + caption: mat-typography-level(12px, 20px, 400, 'Roboto', 0.0333em), + input: mat-typography-level(inherit, 1.125, 400, 'Roboto', 1.5px) +); + +$dark-text: #000000; +$dark-primary-text: rgba($dark-text, 0.87); +$dark-accent-text: rgba($dark-primary-text, 0.54); +$dark-disabled-text: rgba($dark-primary-text, 0.38); +$dark-dividers: rgba($dark-primary-text, 0.12); +$dark-focused: rgba($dark-primary-text, 0.12); + +$mat-light-theme-foreground: ( + base: black, + divider: $dark-dividers, + dividers: $dark-dividers, + disabled: $dark-disabled-text, + disabled-button: rgba($dark-text, 0.26), + disabled-text: $dark-disabled-text, + elevation: black, + secondary-text: $dark-accent-text, + hint-text: $dark-disabled-text, + accent-text: $dark-accent-text, + icon: $dark-accent-text, + icons: $dark-accent-text, + text: $dark-primary-text, + slider-min: $dark-primary-text, + slider-off: rgba($dark-text, 0.26), + slider-off-active: $dark-disabled-text, +); + +$light-text: #f8f8fd; +$light-primary-text: $light-text; +$light-accent-text: rgba($light-primary-text, 0.7); +$light-disabled-text: rgba($light-primary-text, 0.5); +$light-dividers: rgba($light-primary-text, 0.12); +$light-focused: rgba($light-primary-text, 0.12); + +$mat-dark-theme-foreground: ( + base: $light-text, + divider: $light-dividers, + dividers: $light-dividers, + disabled: $light-disabled-text, + disabled-button: rgba($light-text, 0.3), + disabled-text: $light-disabled-text, + elevation: black, + hint-text: $light-disabled-text, + secondary-text: $light-accent-text, + accent-text: $light-accent-text, + icon: $light-text, + icons: $light-text, + text: $light-text, + slider-min: $light-text, + slider-off: rgba($light-text, 0.3), + slider-off-active: rgba($light-text, 0.3), +); + +$light-background: #fafafa; +$light-bg-darker-5: darken($light-background, 5%); +$light-bg-darker-10: darken($light-background, 10%); +$light-bg-darker-20: darken($light-background, 20%); +$light-bg-darker-30: darken($light-background, 30%); +$light-bg-lighter-5: lighten($light-background, 5%); +$dark-bg-tooltip: lighten(#1c2329, 20%); +$dark-bg-alpha-4: rgba(#1c2329, 0.04); +$dark-bg-alpha-12: rgba(#1c2329, 0.12); + +$mat-light-theme-background: ( + background: $light-background, + status-bar: $light-bg-darker-20, + app-bar: $light-bg-darker-5, + hover: $dark-bg-alpha-4, + card: $light-bg-lighter-5, + dialog: $light-bg-lighter-5, + tooltip: $dark-bg-tooltip, + disabled-button: $dark-bg-alpha-12, + raised-button: $light-bg-lighter-5, + focused-button: $dark-focused, + selected-button: $light-bg-darker-20, + selected-disabled-button: $light-bg-darker-30, + disabled-button-toggle: $light-bg-darker-10, + unselected-chip: $light-bg-darker-10, + disabled-list-option: $light-bg-darker-10, +); + +$dark-background: #1c2329; +$dark-bg-lighter-5: lighten($dark-background, 5%); +$dark-bg-lighter-10: lighten($dark-background, 10%); +$dark-bg-lighter-20: lighten($dark-background, 20%); +$dark-bg-lighter-30: lighten($dark-background, 30%); +$light-bg-alpha-4: rgba(#fafafa, 0.04); +$light-bg-alpha-12: rgba(#fafafa, 0.12); + +$mat-dark-theme-background: ( + background: $dark-background, + status-bar: $dark-bg-lighter-20, + app-bar: $dark-bg-lighter-5, + hover: $light-bg-alpha-4, + card: $dark-bg-lighter-5, + dialog: $dark-bg-lighter-5, + tooltip: $dark-bg-lighter-20, + disabled-button: $light-bg-alpha-12, + raised-button: $dark-bg-lighter-5, + focused-button: $light-focused, + selected-button: $dark-bg-lighter-20, + selected-disabled-button: $dark-bg-lighter-30, + disabled-button-toggle: $dark-bg-lighter-10, + unselected-chip: $dark-bg-lighter-20, + disabled-list-option: $dark-bg-lighter-10, +); + +@include mat-core($fontConfig); + +body { + --primary-color: #64b293; + --primary-lighter-color: #d1e8df; + --primary-darker-color: #489976; + --text-primary-color: #{$dark-primary-text}; + --text-primary-lighter-color: #{$dark-primary-text}; + --text-primary-darker-color: #{$light-primary-text}; +} + +$mat-primary: ( + main: #64b293, + lighter: #d1e8df, + darker: #489976, + 200: #64b293, // For slide toggle, + contrast : ( + main: $dark-primary-text, + lighter: $dark-primary-text, + darker: $light-primary-text, + ) +); +$theme-primary: mat-palette($mat-primary, main, lighter, darker); + +body { + --accent-color: #2d383f; + --accent-lighter-color: #c0c3c5; + --accent-darker-color: #1c2429; + --text-accent-color: #{$light-primary-text}; + --text-accent-lighter-color: #{$dark-primary-text}; + --text-accent-darker-color: #{$light-primary-text}; +} + +$mat-accent: ( + main: #2d383f, + lighter: #c0c3c5, + darker: #1c2429, + 200: #2d383f, // For slide toggle, + contrast : ( + main: $light-primary-text, + lighter: $dark-primary-text, + darker: $light-primary-text, + ) +); +$theme-accent: mat-palette($mat-accent, main, lighter, darker); + +body { + --warn-color: #ff0000; + --warn-lighter-color: #ffb3b3; + --warn-darker-color: #ff0000; + --text-warn-color: #{$light-primary-text}; + --text-warn-lighter-color: #{$dark-primary-text}; + --text-warn-darker-color: #{$light-primary-text}; +} + +html, body { + height: 100%; + margin: 0; +} + +$mat-warn: ( + main: #ff0000, + lighter: #ffb3b3, + darker: #ff0000, + 200: #ff0000, // For slide toggle, + contrast : ( + main: $light-primary-text, + lighter: $dark-primary-text, + darker: $light-primary-text, + ) +); +$theme-warn: mat-palette($mat-warn, main, lighter, darker); +; + +$theme: mat-dark-theme($theme-primary, $theme-accent, $theme-warn); +$altTheme: mat-light-theme($theme-primary, $theme-accent, $theme-warn); + +@include angular-material-theme($theme); + +.theme-alternate { + @include angular-material-theme($altTheme); +} + +.mat-raised-button, .mat-stroked-button, .mat-flat-button { + padding: 0 1.15em; + margin: 0 .65em; + min-width: 3em; + line-height: 36.4px +} + +.mat-standard-chip { + padding: .5em .85em; + min-height: 2.5em; +} + +.material-icons { + font-size: 24px; + font-family: 'Material Icons', 'Material Icons'; + + .mat-badge-content { + font-family: 'Roboto'; + } +} + +.text-bold { + font-weight: bold !important; +} + +.text-light { + font-weight: lighter !important; +} + + +.text-success { + color: #009F3A; +} + +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} + +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} + + +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} + +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} diff --git a/client/src/test.ts b/client/src/test.ts new file mode 100644 index 0000000..aa521e1 --- /dev/null +++ b/client/src/test.ts @@ -0,0 +1,22 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import 'zone.js/dist/zone-testing'; +import {getTestBed} from '@angular/core/testing'; +import {BrowserDynamicTestingModule, platformBrowserDynamicTesting} from '@angular/platform-browser-dynamic/testing'; + +declare const require: { + context(path: string, deep?: boolean, filter?: RegExp): { + keys(): string[]; + (id: string): T; + }; +}; + +// First, initialize the Angular testing environment. +getTestBed().initTestEnvironment( + BrowserDynamicTestingModule, + platformBrowserDynamicTesting() +); +// Then we find all the tests. +const context = require.context('./', true, /\.spec\.ts$/); +// And load the modules. +context.keys().map(context); diff --git a/client/tsconfig.app.json b/client/tsconfig.app.json new file mode 100644 index 0000000..82d91dc --- /dev/null +++ b/client/tsconfig.app.json @@ -0,0 +1,15 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [] + }, + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} diff --git a/client/tsconfig.json b/client/tsconfig.json new file mode 100644 index 0000000..4a4dc62 --- /dev/null +++ b/client/tsconfig.json @@ -0,0 +1,23 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "moduleResolution": "node", + "importHelpers": true, + "target": "es2015", + "module": "es2020", + "lib": [ + "es2018", + "dom" + ] + }, + "angularCompilerOptions": { + "enableI18nLegacyMessageIdFormat": false + } +} diff --git a/client/tsconfig.spec.json b/client/tsconfig.spec.json new file mode 100644 index 0000000..092345b --- /dev/null +++ b/client/tsconfig.spec.json @@ -0,0 +1,18 @@ +/* To learn more about this file see: https://angular.io/config/tsconfig. */ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine" + ] + }, + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} diff --git a/client/tslint.json b/client/tslint.json new file mode 100644 index 0000000..277c8eb --- /dev/null +++ b/client/tslint.json @@ -0,0 +1,152 @@ +{ + "extends": "tslint:recommended", + "rulesDirectory": [ + "codelyzer" + ], + "rules": { + "align": { + "options": [ + "parameters", + "statements" + ] + }, + "array-type": false, + "arrow-return-shorthand": true, + "curly": true, + "deprecation": { + "severity": "warning" + }, + "eofline": true, + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "import-spacing": true, + "indent": { + "options": [ + "spaces" + ] + }, + "max-classes-per-file": false, + "max-line-length": [ + true, + 140 + ], + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-empty": false, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-non-null-assertion": true, + "no-redundant-jsdoc": true, + "no-switch-case-fall-through": true, + "no-var-requires": false, + "object-literal-key-quotes": [ + true, + "as-needed" + ], + "quotemark": [ + true, + "single" + ], + "semicolon": { + "options": [ + "always" + ] + }, + "space-before-function-paren": { + "options": { + "anonymous": "never", + "asyncArrow": "always", + "constructor": "never", + "method": "never", + "named": "never" + } + }, + "typedef": [ + true, + "call-signature" + ], + "typedef-whitespace": { + "options": [ + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }, + { + "call-signature": "onespace", + "index-signature": "onespace", + "parameter": "onespace", + "property-declaration": "onespace", + "variable-declaration": "onespace" + } + ] + }, + "variable-name": { + "options": [ + "ban-keywords", + "check-format", + "allow-pascal-case" + ] + }, + "whitespace": { + "options": [ + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type", + "check-typecast" + ] + }, + "component-class-suffix": true, + "contextual-lifecycle": true, + "directive-class-suffix": true, + "no-conflicting-lifecycle": true, + "no-host-metadata-property": true, + "no-input-rename": true, + "no-inputs-metadata-property": true, + "no-output-native": true, + "no-output-on-prefix": true, + "no-output-rename": true, + "no-outputs-metadata-property": true, + "template-banana-in-box": true, + "template-no-negated-async": true, + "use-lifecycle-interface": true, + "use-pipe-transform-interface": true, + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ] + } +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..9e332ec --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,32 @@ +version: '3' + +services: + + ai: + container_name: "dataspire-lite-ai" + build: ./ai + networks: + - dsrnetwork + ports: + - "5000:5000" + backend: + container_name: "dataspire-lite-services" + build: ./services + depends_on: + - ai + networks: + - dsrnetwork + ports: + - "8000:8000" + + client: + container_name: dataspire-lite-ui + restart: always + build: ./client + depends_on: + - backend + ports: + - "4200:80" + +networks: + dsrnetwork: diff --git a/pipeline.png b/pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..fb463f1bee7ddeff62cf73181c56f19d360bccfa GIT binary patch literal 126426 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 G&;J8f@l-1S literal 0 HcmV?d00001 diff --git a/services/.gitignore b/services/.gitignore new file mode 100644 index 0000000..0d5ee18 --- /dev/null +++ b/services/.gitignore @@ -0,0 +1,187 @@ +# Created by .ignore support plugin (hsz.mobi) +### Java template +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +### Maven template +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +# https://github.com/takari/maven-wrapper#usage-without-binary-jar +.mvn/wrapper/maven-wrapper.jar + +### JetBrains template +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/**/workspace.xml +.idea/**/tasks.xml +.idea/**/usage.statistics.xml +.idea/**/dictionaries +.idea/**/shelf + +# Generated files +.idea/**/contentModel.xml + +# Sensitive or high-churn files +.idea/**/dataSources/ +.idea/**/dataSources.ids +.idea/**/dataSources.local.xml +.idea/**/sqlDataSources.xml +.idea/**/dynamic.xml +.idea/**/uiDesigner.xml +.idea/**/dbnavigator.xml + +# Gradle +.idea/**/gradle.xml +.idea/**/libraries + +# Gradle and Maven with auto-import +# When using Gradle or Maven with auto-import, you should exclude module files, +# since they will be recreated, and may cause churn. Uncomment if using +# auto-import. +# .idea/artifacts +# .idea/compiler.xml +# .idea/jarRepositories.xml +# .idea/modules.xml +# .idea/*.iml +# .idea/modules +# *.iml +# *.ipr + +# CMake +cmake-build-*/ + +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +services.iml +.mvn diff --git a/services/Dockerfile b/services/Dockerfile new file mode 100644 index 0000000..514955a --- /dev/null +++ b/services/Dockerfile @@ -0,0 +1,13 @@ +FROM maven:alpine AS build +COPY src /app/src +COPY pom.xml /app +WORKDIR /app +RUN mvn clean install -DskipTests + + +FROM openjdk:8-jdk-alpine +RUN addgroup -S spring && adduser -S spring -G spring +USER spring:spring +COPY --from=build /app/target/*.jar app.jar + +ENTRYPOINT ["java","-jar","/app.jar"] diff --git a/services/HELP.md b/services/HELP.md new file mode 100644 index 0000000..38af95f --- /dev/null +++ b/services/HELP.md @@ -0,0 +1,10 @@ +# Getting Started + +### Reference Documentation + +For further reference, please consider the following sections: + +* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) +* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/docs/2.4.4/maven-plugin/reference/html/) +* [Create an OCI image](https://docs.spring.io/spring-boot/docs/2.4.4/maven-plugin/reference/html/#build-image) + diff --git a/services/README.md b/services/README.md new file mode 100644 index 0000000..1a57649 --- /dev/null +++ b/services/README.md @@ -0,0 +1,38 @@ +# Spring boot + GraphQL-Java + +This application is using Spring boot 2 and Graphql-Java. This application will communicate with apaleo APIs to get or renew access token, get reservation data. Then use the reservation data as input data for AI services. + +## Structure +![Pipeline](../structure.png) +## Installation +### Using Maven + +To start the project, use the below command: +```bash +mvn clean springboot:run -DskipTests +``` +By default, the application will listen on port 8000. +## Usage +### GraphiQL +You can view available queries and mutations on: http://localhost:8000/graphiql + +Example: + +To exchange code for access token, use the below query: +``` +mutation exchangeToken +{ + exchangeToken(input:{ + code:"" + redirectUrl:"http://localhost:4200/callback" + }){ + idToken + accessToken + expiresIn + tokenType + refreshToken + } +} + +``` + diff --git a/services/mvnw b/services/mvnw new file mode 100644 index 0000000..a16b543 --- /dev/null +++ b/services/mvnw @@ -0,0 +1,310 @@ +#!/bin/sh +# ---------------------------------------------------------------------------- +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# Maven Start Up Batch script +# +# Required ENV vars: +# ------------------ +# JAVA_HOME - location of a JDK home dir +# +# Optional ENV vars +# ----------------- +# M2_HOME - location of maven2's installed home dir +# MAVEN_OPTS - parameters passed to the Java VM when running Maven +# e.g. to debug Maven itself, use +# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +# MAVEN_SKIP_RC - flag to disable loading of mavenrc files +# ---------------------------------------------------------------------------- + +if [ -z "$MAVEN_SKIP_RC" ] ; then + + if [ -f /etc/mavenrc ] ; then + . /etc/mavenrc + fi + + if [ -f "$HOME/.mavenrc" ] ; then + . "$HOME/.mavenrc" + fi + +fi + +# OS specific support. $var _must_ be set to either true or false. +cygwin=false; +darwin=false; +mingw=false +case "`uname`" in + CYGWIN*) cygwin=true ;; + MINGW*) mingw=true;; + Darwin*) darwin=true + # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home + # See https://developer.apple.com/library/mac/qa/qa1170/_index.html + if [ -z "$JAVA_HOME" ]; then + if [ -x "/usr/libexec/java_home" ]; then + export JAVA_HOME="`/usr/libexec/java_home`" + else + export JAVA_HOME="/Library/Java/Home" + fi + fi + ;; +esac + +if [ -z "$JAVA_HOME" ] ; then + if [ -r /etc/gentoo-release ] ; then + JAVA_HOME=`java-config --jre-home` + fi +fi + +if [ -z "$M2_HOME" ] ; then + ## resolve links - $0 may be a link to maven's home + PRG="$0" + + # need this for relative symlinks + while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG="`dirname "$PRG"`/$link" + fi + done + + saveddir=`pwd` + + M2_HOME=`dirname "$PRG"`/.. + + # make it fully qualified + M2_HOME=`cd "$M2_HOME" && pwd` + + cd "$saveddir" + # echo Using m2 at $M2_HOME +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched +if $cygwin ; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --unix "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --unix "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --unix "$CLASSPATH"` +fi + +# For Mingw, ensure paths are in UNIX format before anything is touched +if $mingw ; then + [ -n "$M2_HOME" ] && + M2_HOME="`(cd "$M2_HOME"; pwd)`" + [ -n "$JAVA_HOME" ] && + JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" +fi + +if [ -z "$JAVA_HOME" ]; then + javaExecutable="`which javac`" + if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then + if $darwin ; then + javaHome="`dirname \"$javaExecutable\"`" + javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" + else + javaExecutable="`readlink -f \"$javaExecutable\"`" + fi + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + JAVA_HOME="$javaHome" + export JAVA_HOME + fi + fi +fi + +if [ -z "$JAVACMD" ] ; then + if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + else + JAVACMD="`which java`" + fi +fi + +if [ ! -x "$JAVACMD" ] ; then + echo "Error: JAVA_HOME is not defined correctly." >&2 + echo " We cannot execute $JAVACMD" >&2 + exit 1 +fi + +if [ -z "$JAVA_HOME" ] ; then + echo "Warning: JAVA_HOME environment variable is not set." +fi + +CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher + +# traverses directory structure from process work directory to filesystem root +# first directory with .mvn subdirectory is considered project base directory +find_maven_basedir() { + + if [ -z "$1" ] + then + echo "Path not specified to find_maven_basedir" + return 1 + fi + + basedir="$1" + wdir="$1" + while [ "$wdir" != '/' ] ; do + if [ -d "$wdir"/.mvn ] ; then + basedir=$wdir + break + fi + # workaround for JBEAP-8937 (on Solaris 10/Sparc) + if [ -d "${wdir}" ]; then + wdir=`cd "$wdir/.."; pwd` + fi + # end of workaround + done + echo "${basedir}" +} + +# concatenates all lines of a file +concat_lines() { + if [ -f "$1" ]; then + echo "$(tr -s '\n' ' ' < "$1")" + fi +} + +BASE_DIR=`find_maven_basedir "$(pwd)"` +if [ -z "$BASE_DIR" ]; then + exit 1; +fi + +########################################################################################## +# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +# This allows using the maven wrapper in projects that prohibit checking in binary data. +########################################################################################## +if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found .mvn/wrapper/maven-wrapper.jar" + fi +else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." + fi + if [ -n "$MVNW_REPOURL" ]; then + jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + else + jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + fi + while IFS="=" read key value; do + case "$key" in (wrapperUrl) jarUrl="$value"; break ;; + esac + done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" + if [ "$MVNW_VERBOSE" = true ]; then + echo "Downloading from: $jarUrl" + fi + wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" + if $cygwin; then + wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` + fi + + if command -v wget > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found wget ... using wget" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + wget "$jarUrl" -O "$wrapperJarPath" + else + wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" + fi + elif command -v curl > /dev/null; then + if [ "$MVNW_VERBOSE" = true ]; then + echo "Found curl ... using curl" + fi + if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then + curl -o "$wrapperJarPath" "$jarUrl" -f + else + curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f + fi + + else + if [ "$MVNW_VERBOSE" = true ]; then + echo "Falling back to using Java to download" + fi + javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" + # For Cygwin, switch paths to Windows format before running javac + if $cygwin; then + javaClass=`cygpath --path --windows "$javaClass"` + fi + if [ -e "$javaClass" ]; then + if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Compiling MavenWrapperDownloader.java ..." + fi + # Compiling the Java class + ("$JAVA_HOME/bin/javac" "$javaClass") + fi + if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then + # Running the downloader + if [ "$MVNW_VERBOSE" = true ]; then + echo " - Running MavenWrapperDownloader.java ..." + fi + ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") + fi + fi + fi +fi +########################################################################################## +# End of extension +########################################################################################## + +export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} +if [ "$MVNW_VERBOSE" = true ]; then + echo $MAVEN_PROJECTBASEDIR +fi +MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" + +# For Cygwin, switch paths to Windows format before running java +if $cygwin; then + [ -n "$M2_HOME" ] && + M2_HOME=`cygpath --path --windows "$M2_HOME"` + [ -n "$JAVA_HOME" ] && + JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` + [ -n "$CLASSPATH" ] && + CLASSPATH=`cygpath --path --windows "$CLASSPATH"` + [ -n "$MAVEN_PROJECTBASEDIR" ] && + MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` +fi + +# Provide a "standardized" way to retrieve the CLI args that will +# work with both Windows and non-Windows executions. +MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" +export MAVEN_CMD_LINE_ARGS + +WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +exec "$JAVACMD" \ + $MAVEN_OPTS \ + -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ + "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ + ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/services/mvnw.cmd b/services/mvnw.cmd new file mode 100644 index 0000000..c8d4337 --- /dev/null +++ b/services/mvnw.cmd @@ -0,0 +1,182 @@ +@REM ---------------------------------------------------------------------------- +@REM Licensed to the Apache Software Foundation (ASF) under one +@REM or more contributor license agreements. See the NOTICE file +@REM distributed with this work for additional information +@REM regarding copyright ownership. The ASF licenses this file +@REM to you under the Apache License, Version 2.0 (the +@REM "License"); you may not use this file except in compliance +@REM with the License. You may obtain a copy of the License at +@REM +@REM https://www.apache.org/licenses/LICENSE-2.0 +@REM +@REM Unless required by applicable law or agreed to in writing, +@REM software distributed under the License is distributed on an +@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +@REM KIND, either express or implied. See the License for the +@REM specific language governing permissions and limitations +@REM under the License. +@REM ---------------------------------------------------------------------------- + +@REM ---------------------------------------------------------------------------- +@REM Maven Start Up Batch script +@REM +@REM Required ENV vars: +@REM JAVA_HOME - location of a JDK home dir +@REM +@REM Optional ENV vars +@REM M2_HOME - location of maven2's installed home dir +@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands +@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending +@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven +@REM e.g. to debug Maven itself, use +@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 +@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files +@REM ---------------------------------------------------------------------------- + +@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' +@echo off +@REM set title of command window +title %0 +@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' +@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% + +@REM set %HOME% to equivalent of $HOME +if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") + +@REM Execute a user defined script before this one +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre +@REM check for pre script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat" +if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd" +:skipRcPre + +@setlocal + +set ERROR_CODE=0 + +@REM To isolate internal variables from possible post scripts, we use another setlocal +@setlocal + +@REM ==== START VALIDATION ==== +if not "%JAVA_HOME%" == "" goto OkJHome + +echo. +echo Error: JAVA_HOME not found in your environment. >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +:OkJHome +if exist "%JAVA_HOME%\bin\java.exe" goto init + +echo. +echo Error: JAVA_HOME is set to an invalid directory. >&2 +echo JAVA_HOME = "%JAVA_HOME%" >&2 +echo Please set the JAVA_HOME variable in your environment to match the >&2 +echo location of your Java installation. >&2 +echo. +goto error + +@REM ==== END VALIDATION ==== + +:init + +@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". +@REM Fallback to current working directory if not found. + +set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% +IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir + +set EXEC_DIR=%CD% +set WDIR=%EXEC_DIR% +:findBaseDir +IF EXIST "%WDIR%"\.mvn goto baseDirFound +cd .. +IF "%WDIR%"=="%CD%" goto baseDirNotFound +set WDIR=%CD% +goto findBaseDir + +:baseDirFound +set MAVEN_PROJECTBASEDIR=%WDIR% +cd "%EXEC_DIR%" +goto endDetectBaseDir + +:baseDirNotFound +set MAVEN_PROJECTBASEDIR=%EXEC_DIR% +cd "%EXEC_DIR%" + +:endDetectBaseDir + +IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig + +@setlocal EnableExtensions EnableDelayedExpansion +for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a +@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% + +:endReadAdditionalConfig + +SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" +set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" +set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain + +set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + +FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( + IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B +) + +@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central +@REM This allows using the maven wrapper in projects that prohibit checking in binary data. +if exist %WRAPPER_JAR% ( + if "%MVNW_VERBOSE%" == "true" ( + echo Found %WRAPPER_JAR% + ) +) else ( + if not "%MVNW_REPOURL%" == "" ( + SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar" + ) + if "%MVNW_VERBOSE%" == "true" ( + echo Couldn't find %WRAPPER_JAR%, downloading it ... + echo Downloading from: %DOWNLOAD_URL% + ) + + powershell -Command "&{"^ + "$webclient = new-object System.Net.WebClient;"^ + "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ + "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ + "}"^ + "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ + "}" + if "%MVNW_VERBOSE%" == "true" ( + echo Finished downloading %WRAPPER_JAR% + ) +) +@REM End of extension + +@REM Provide a "standardized" way to retrieve the CLI args that will +@REM work with both Windows and non-Windows executions. +set MAVEN_CMD_LINE_ARGS=%* + +%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* +if ERRORLEVEL 1 goto error +goto end + +:error +set ERROR_CODE=1 + +:end +@endlocal & set ERROR_CODE=%ERROR_CODE% + +if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost +@REM check for post script, once with legacy .bat ending and once with .cmd ending +if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat" +if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd" +:skipRcPost + +@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' +if "%MAVEN_BATCH_PAUSE%" == "on" pause + +if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE% + +exit /B %ERROR_CODE% diff --git a/services/pom.xml b/services/pom.xml new file mode 100644 index 0000000..73b6016 --- /dev/null +++ b/services/pom.xml @@ -0,0 +1,114 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 2.4.4 + + + com.devrupt + services + 0.0.1-SNAPSHOT + services + Hcg Devrupt + + 1.8 + 4.5.6 + 5.0.2 + 11.0 + 5.2.4 + 1.2.17 + 2.8.0 + 3.17 + 3.17 + + + + org.springframework.boot + spring-boot-starter + + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.springframework.boot + spring-boot-starter-web + + + + org.apache.httpcomponents + httpclient + ${apache-httpcomponents.version} + + + + log4j + log4j + ${log4j.version} + + + + com.graphql-java + graphiql-spring-boot-starter + ${graphql-spring-boot-starter.version} + + + com.graphql-java + graphql-java + ${graphql-java.version} + + + com.graphql-java + graphql-java-tools + ${graphql-java-tools.version} + + + + commons-io + commons-io + ${commons-io.version} + + + + org.apache.poi + poi + ${poi.version} + + + + org.apache.poi + poi-ooxml + ${poi-ooxml.version} + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git a/services/src/main/java/com/devrupt/services/ServicesApplication.java b/services/src/main/java/com/devrupt/services/ServicesApplication.java new file mode 100644 index 0000000..ca6dd5a --- /dev/null +++ b/services/src/main/java/com/devrupt/services/ServicesApplication.java @@ -0,0 +1,38 @@ +package com.devrupt.services; + +import com.devrupt.services.config.restTemplate.cookie.RestTemplateStandardCookieCustomizer; +import com.devrupt.services.config.restTemplate.errorHandler.RestTemplateResponseErrorHandler; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.web.client.RestTemplate; + +@SpringBootApplication +public class ServicesApplication { + + public static void main(String[] args) { + SpringApplication.run(ServicesApplication.class, args); + } + + @Bean(name = "restTemplate") + public RestTemplate createRestTemplate() { + return new RestTemplateBuilder() + .additionalCustomizers(new RestTemplateStandardCookieCustomizer()) + .errorHandler(new RestTemplateResponseErrorHandler()) + .build(); + } + + @Bean(name = "objectMapper") + public ObjectMapper createObjectMapper(){ + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + objectMapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true); + objectMapper.registerModule(new JavaTimeModule()); + + return objectMapper; + } +} diff --git a/services/src/main/java/com/devrupt/services/config/graphql/GraphQLUtils.java b/services/src/main/java/com/devrupt/services/config/graphql/GraphQLUtils.java new file mode 100644 index 0000000..0210a8f --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/graphql/GraphQLUtils.java @@ -0,0 +1,62 @@ +package com.devrupt.services.config.graphql; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Component +public class GraphQLUtils { + + @Autowired + private ObjectMapper objectMapper; + + /** + * + * @param responseString + * @param tTypeReference + * @param + * @return + * @throws JsonProcessingException + */ + public T readValues(String responseString,String queryName, TypeReference tTypeReference) throws JsonProcessingException { + + T result = null; + ResponseContent responseContent = objectMapper.readValue(responseString, new TypeReference() {}); + if (responseContent.getErrors()== null || responseContent.getErrors().size()>0) { + result = objectMapper.readValue(responseContent.getData().get(queryName).toString() + , tTypeReference); + } + return result; + } + + /** + * + * @param query + * @return + */ + public RequestContent generateRequestContent(String query, Map queryGraphMap){ + return this.generateRequestContent( query ,queryGraphMap, null ); + } + + /** + * + * @param query + * @param variables + * @param + * @return + */ + public RequestContent generateRequestContent(String query, Map queryGraphMap ,Map variables){ + String queryGraph = queryGraphMap.get(query); + + RequestContent requestContent = new RequestContent(); + requestContent.setOperationName(query); + requestContent.setQuery( queryGraph ); + requestContent.setVariables( variables ); + + return requestContent; + } +} diff --git a/services/src/main/java/com/devrupt/services/config/graphql/OneGraphQL.java b/services/src/main/java/com/devrupt/services/config/graphql/OneGraphQL.java new file mode 100644 index 0000000..f597d75 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/graphql/OneGraphQL.java @@ -0,0 +1,121 @@ +package com.devrupt.services.config.graphql; + +import com.devrupt.services.config.graphql.instance.GraphQLInstance; +import com.devrupt.services.config.graphql.instrumentation.CustomInstrumentation; +import com.devrupt.services.config.graphql.typeWiring.TypeWiringFactory; +import graphql.ExecutionInput; +import graphql.ExecutionResult; +import graphql.GraphQL; +import graphql.execution.instrumentation.ChainedInstrumentation; +import graphql.execution.instrumentation.Instrumentation; +import graphql.schema.GraphQLSchema; +import graphql.schema.idl.*; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.Resource; +import org.springframework.stereotype.Component; +import org.springframework.util.FileCopyUtils; +import org.springframework.util.StringUtils; + +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.function.UnaryOperator; + +@Component +public class OneGraphQL implements InitializingBean +{ + private final String _QUERY = "Query"; + private final String _MUTATION = "Mutation"; + + @Value("classpath*:graphqls/**/*.graphql") + private Resource[] graphqlFiles; + + @Autowired + private TypeWiringFactory typeWiringFactory; + + @Autowired + private CustomInstrumentation customInstrumentation; + + private GraphQL graphQL; + + public class CustomComparator implements Comparator { + @Override + public int compare(Resource o1, Resource o2) { + return o1.getFilename().compareTo(o2.getFilename()); + } + } + + @Override + public void afterPropertiesSet() throws Exception + { + System.out.println("RUN LOAD SCHEMA IN afterPropertiesSet"); + List resources = Arrays.asList(graphqlFiles); + if( resources.size() > 0 ){ + Collections.sort(resources, new CustomComparator()); + + // parse schema for _firstInit + TypeDefinitionRegistry typeRegistry = null; + SchemaParser parser = new SchemaParser(); + for(Resource r : resources ) + { + System.out.println("Graphql : " + r.getFilename()); + InputStream is = r.getInputStream(); + byte[] bdata = FileCopyUtils.copyToByteArray(is); + String data = new String(bdata, StandardCharsets.UTF_8); + if(!StringUtils.isEmpty(data)) + { + typeRegistry = (typeRegistry == null) + ? parser.parse(data) + : typeRegistry.merge(parser.parse(data)); + + } + } + //Inject Data Fetcher + typeWiringFactory.injectDataFetcher(); + + RuntimeWiring wiring = this.buildRuntimeWiring(); + GraphQLSchema schema = new SchemaGenerator().makeExecutableSchema(typeRegistry, wiring); + List chainedList = new ArrayList<>(); + chainedList.add(customInstrumentation); + ChainedInstrumentation chainedInstrumentation = new ChainedInstrumentation(chainedList); + + graphQL = GraphQL + .newGraphQL(schema) + .instrumentation(chainedInstrumentation) + .build(); + } + } + + public ExecutionResult executeQuery(RequestContent request){ + + return graphQL.execute(ExecutionInput.newExecutionInput() + .query(request.getQuery()) + .operationName(request.getOperationName()) + .variables(request.getVariables()) + .build() + ); + } + + private UnaryOperator queryRuntimeWiring = typeWiring -> + { + typeWiring.dataFetchers(GraphQLInstance.getInstance().queryTypeWiringMap); + return typeWiring; + }; + + private UnaryOperator mutationRuntimeWiring = typeWiring -> + { + typeWiring.dataFetchers(GraphQLInstance.getInstance().mutationTypeWiringMap); + return typeWiring; + }; + + private RuntimeWiring buildRuntimeWiring() { + return RuntimeWiring.newRuntimeWiring() + .type(_QUERY, queryRuntimeWiring) + .type(_MUTATION, mutationRuntimeWiring) + .build(); + } + + +} diff --git a/services/src/main/java/com/devrupt/services/config/graphql/RequestContent.java b/services/src/main/java/com/devrupt/services/config/graphql/RequestContent.java new file mode 100644 index 0000000..7b5cc71 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/graphql/RequestContent.java @@ -0,0 +1,21 @@ +package com.devrupt.services.config.graphql; + +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; + +@Getter +@Setter +public class RequestContent { + + private String operationName; + + private String query; + + private Map variables; + + public RequestContent(){ + super(); + } +} diff --git a/services/src/main/java/com/devrupt/services/config/graphql/ResponseContent.java b/services/src/main/java/com/devrupt/services/config/graphql/ResponseContent.java new file mode 100644 index 0000000..3919d43 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/graphql/ResponseContent.java @@ -0,0 +1,26 @@ +package com.devrupt.services.config.graphql; + +import com.fasterxml.jackson.databind.JsonNode; +import graphql.GraphQLError; +import lombok.Getter; +import lombok.Setter; + +import java.util.List; +import java.util.Map; + +@Getter +@Setter +public class ResponseContent { + + private JsonNode data; + + private List errors; + + private transient boolean dataPresent; + + private transient Map extensions; + + public ResponseContent(){ + super(); + } +} diff --git a/services/src/main/java/com/devrupt/services/config/graphql/error/CustomGraphQLException.java b/services/src/main/java/com/devrupt/services/config/graphql/error/CustomGraphQLException.java new file mode 100644 index 0000000..f143c64 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/graphql/error/CustomGraphQLException.java @@ -0,0 +1,48 @@ +package com.devrupt.services.config.graphql.error; + +import graphql.ErrorType; +import graphql.GraphQLError; +import graphql.language.SourceLocation; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +public class CustomGraphQLException implements GraphQLError +{ + private static final long serialVersionUID = -6515875528909061411L; + private GraphQLError e; + + public CustomGraphQLException(GraphQLError e) + { + this.e = e; + } + + @Override + public Map getExtensions() + { + Map customAttributes = new LinkedHashMap<>(); + + customAttributes.put("message", this.getMessage()); + + return customAttributes; + } + + @Override + public String getMessage() + { + return e.getMessage(); + } + + @Override + public List getLocations() + { + return e.getLocations(); + } + + @Override + public ErrorType getErrorType() + { + return e.getErrorType(); + } +} diff --git a/services/src/main/java/com/devrupt/services/config/graphql/instance/GraphQLInstance.java b/services/src/main/java/com/devrupt/services/config/graphql/instance/GraphQLInstance.java new file mode 100644 index 0000000..7d3da38 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/graphql/instance/GraphQLInstance.java @@ -0,0 +1,26 @@ +package com.devrupt.services.config.graphql.instance; + +import graphql.schema.DataFetcher; + +import java.util.LinkedHashMap; +import java.util.Map; + +public class GraphQLInstance +{ + public Map queryTypeWiringMap; + public Map mutationTypeWiringMap; + + private static GraphQLInstance instance; + + private GraphQLInstance(){} + + public static GraphQLInstance getInstance(){ + if(instance == null){ + instance = new GraphQLInstance(); + instance.queryTypeWiringMap = new LinkedHashMap<>(); + instance.mutationTypeWiringMap = new LinkedHashMap<>(); + + } + return instance; + } +} diff --git a/services/src/main/java/com/devrupt/services/config/graphql/instrumentation/CustomInstrumentation.java b/services/src/main/java/com/devrupt/services/config/graphql/instrumentation/CustomInstrumentation.java new file mode 100644 index 0000000..b38b6ca --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/graphql/instrumentation/CustomInstrumentation.java @@ -0,0 +1,61 @@ +package com.devrupt.services.config.graphql.instrumentation; + +import graphql.ExecutionResult; +import graphql.execution.instrumentation.InstrumentationContext; +import graphql.execution.instrumentation.InstrumentationState; +import graphql.execution.instrumentation.SimpleInstrumentation; +import graphql.execution.instrumentation.SimpleInstrumentationContext; +import graphql.execution.instrumentation.parameters.InstrumentationExecutionParameters; +import graphql.execution.instrumentation.parameters.InstrumentationFieldFetchParameters; +import graphql.schema.DataFetcher; +import org.springframework.stereotype.Component; + +import java.util.concurrent.CompletableFuture; +import org.apache.log4j.Logger; + +@Component +public class CustomInstrumentation extends SimpleInstrumentation +{ + private static final Logger LOGGER = Logger.getLogger(CustomInstrumentation.class); + + @Override + public InstrumentationState createState() { + // + // instrumentation state is passed during each invocation of an Instrumentation method + // and allows you to put stateful data away and reference it during the query execution + // + return new CustomInstrumentationState(); + } + + @Override + public InstrumentationContext beginExecution(InstrumentationExecutionParameters parameters) { + long startNanos = System.nanoTime(); + return new SimpleInstrumentationContext() { + @Override + public void onCompleted(ExecutionResult result, Throwable t) { + CustomInstrumentationState state = parameters.getInstrumentationState(); + long elapsedTime = System.nanoTime() - startNanos; + state.recordTiming(parameters.getQuery(), System.nanoTime() - startNanos); + LOGGER.info(((double)elapsedTime / 1_000_000_000.0) + ""); + } + }; + } + + @Override + public DataFetcher instrumentDataFetcher(DataFetcher dataFetcher, InstrumentationFieldFetchParameters parameters) { + // + // this allows you to intercept the data fetcher used to fetch a field and provide another one, perhaps + // that enforces certain behaviours or has certain side effects on the data + // + return dataFetcher; + } + + @Override + public CompletableFuture instrumentExecutionResult(ExecutionResult executionResult, InstrumentationExecutionParameters parameters) { + // + // this allows you to instrument the execution result some how. For example the Tracing support uses this to put + // the `extensions` map of data in place + // + return CompletableFuture.completedFuture(executionResult); + } +} diff --git a/services/src/main/java/com/devrupt/services/config/graphql/instrumentation/CustomInstrumentationState.java b/services/src/main/java/com/devrupt/services/config/graphql/instrumentation/CustomInstrumentationState.java new file mode 100644 index 0000000..897cebd --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/graphql/instrumentation/CustomInstrumentationState.java @@ -0,0 +1,25 @@ +package com.devrupt.services.config.graphql.instrumentation; + +import graphql.execution.instrumentation.InstrumentationState; + +import java.util.HashMap; +import java.util.Map; + +public class CustomInstrumentationState implements InstrumentationState +{ + private Map anyStateYouLike = new HashMap<>(); + + public void recordTiming(String key, long time) { + anyStateYouLike.put(key, time); + } + + public Map getAnyStateYouLike() + { + return anyStateYouLike; + } + + public void setAnyStateYouLike(Map anyStateYouLike) + { + this.anyStateYouLike = anyStateYouLike; + } +} diff --git a/services/src/main/java/com/devrupt/services/config/graphql/typeWiring/FetcherContainer.java b/services/src/main/java/com/devrupt/services/config/graphql/typeWiring/FetcherContainer.java new file mode 100644 index 0000000..5a27de4 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/graphql/typeWiring/FetcherContainer.java @@ -0,0 +1,10 @@ +package com.devrupt.services.config.graphql.typeWiring; + +import graphql.schema.DataFetcher; + +import java.util.Map; + +public interface FetcherContainer { + Map> query(); + Map> mutation(); +} diff --git a/services/src/main/java/com/devrupt/services/config/graphql/typeWiring/TypeWiringFactory.java b/services/src/main/java/com/devrupt/services/config/graphql/typeWiring/TypeWiringFactory.java new file mode 100644 index 0000000..81030b6 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/graphql/typeWiring/TypeWiringFactory.java @@ -0,0 +1,34 @@ +package com.devrupt.services.config.graphql.typeWiring; + +import com.devrupt.services.config.graphql.instance.GraphQLInstance; +import graphql.schema.DataFetcher; +import lombok.Getter; +import lombok.Setter; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Component +@Getter +@Setter +public class TypeWiringFactory +{ + private final Map _QUERY_TYPE = GraphQLInstance.getInstance().queryTypeWiringMap; + private final Map _MUTATION_TYPE = GraphQLInstance.getInstance().mutationTypeWiringMap; + + @Autowired(required = false) + private List fetcherContainerList = new ArrayList<>(); + + /** + * + */ + public void injectDataFetcher(){ + for( FetcherContainer fetcherContainer:fetcherContainerList){ + _QUERY_TYPE.putAll( fetcherContainer.query()); + _MUTATION_TYPE.putAll( fetcherContainer.mutation()); + } + } +} diff --git a/services/src/main/java/com/devrupt/services/config/restTemplate/cookie/RestTemplateStandardCookieCustomizer.java b/services/src/main/java/com/devrupt/services/config/restTemplate/cookie/RestTemplateStandardCookieCustomizer.java new file mode 100644 index 0000000..05564aa --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/restTemplate/cookie/RestTemplateStandardCookieCustomizer.java @@ -0,0 +1,26 @@ +package com.devrupt.services.config.restTemplate.cookie; + +import org.apache.http.client.HttpClient; +import org.apache.http.client.config.CookieSpecs; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.impl.client.HttpClients; +import org.springframework.boot.web.client.RestTemplateCustomizer; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.web.client.RestTemplate; + +public class RestTemplateStandardCookieCustomizer + implements RestTemplateCustomizer { + + @Override + public void customize(final RestTemplate restTemplate) { + + final HttpClient httpClient = HttpClients.custom() + .setDefaultRequestConfig(RequestConfig.custom() + .setCookieSpec(CookieSpecs.STANDARD).build()) + .build(); + + restTemplate.setRequestFactory( + new HttpComponentsClientHttpRequestFactory(httpClient) + ); + } +} diff --git a/services/src/main/java/com/devrupt/services/config/restTemplate/errorHandler/RestTemplateResponseErrorHandler.java b/services/src/main/java/com/devrupt/services/config/restTemplate/errorHandler/RestTemplateResponseErrorHandler.java new file mode 100644 index 0000000..2ee922b --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/restTemplate/errorHandler/RestTemplateResponseErrorHandler.java @@ -0,0 +1,51 @@ +package com.devrupt.services.config.restTemplate.errorHandler; + +import com.devrupt.services.config.restTemplate.exception.RestTemplateException; +import com.devrupt.services.utils.RestUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.client.ClientHttpResponse; +import org.springframework.stereotype.Component; +import org.springframework.web.client.ResponseErrorHandler; + +import java.io.*; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + +import static org.springframework.http.HttpStatus.Series.CLIENT_ERROR; +import static org.springframework.http.HttpStatus.Series.SERVER_ERROR; + +@Component +public class RestTemplateResponseErrorHandler implements ResponseErrorHandler +{ + final Logger logger = LoggerFactory.getLogger(RestTemplateResponseErrorHandler.class); + + @Override + public boolean hasError(ClientHttpResponse httpResponse) + throws IOException + { + return (httpResponse.getStatusCode().series() == CLIENT_ERROR || + httpResponse.getStatusCode().series() == SERVER_ERROR); + } + + @Override + public void handleError(ClientHttpResponse httpResponse) + throws IOException + { + InputStream inputStream = httpResponse.getBody(); + + StringBuilder textBuilder = new StringBuilder(); + try (Reader reader = new BufferedReader(new InputStreamReader + (inputStream, Charset.forName(StandardCharsets.UTF_8.name())))) + { + int c = 0; + while ((c = reader.read()) != -1) + { + textBuilder.append((char) c); + } + } + + logger.error(textBuilder.toString()); + throw new RestTemplateException(httpResponse.getStatusCode(), textBuilder.toString()); + } +} diff --git a/services/src/main/java/com/devrupt/services/config/restTemplate/exception/RestTemplateException.java b/services/src/main/java/com/devrupt/services/config/restTemplate/exception/RestTemplateException.java new file mode 100644 index 0000000..15dcc1d --- /dev/null +++ b/services/src/main/java/com/devrupt/services/config/restTemplate/exception/RestTemplateException.java @@ -0,0 +1,18 @@ +package com.devrupt.services.config.restTemplate.exception; + +import lombok.Data; +import org.springframework.http.HttpStatus; + +@Data +public class RestTemplateException extends RuntimeException { + private HttpStatus status; + + public RestTemplateException() { + super(); + } + + public RestTemplateException(HttpStatus status, String message) { + super(message); + this.status = status; + } +} diff --git a/services/src/main/java/com/devrupt/services/controller/download/DownloadController.java b/services/src/main/java/com/devrupt/services/controller/download/DownloadController.java new file mode 100644 index 0000000..1b585f5 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/controller/download/DownloadController.java @@ -0,0 +1,53 @@ +package com.devrupt.services.controller.download; + +import com.devrupt.services.service.export.ExportService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.mvc.method.annotation.StreamingResponseBody; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URISyntaxException; + +@Controller +@RequestMapping(value = "/download") +public class DownloadController +{ + @Autowired + private ExportService exportService; + + @CrossOrigin(origins = "*", allowedHeaders = "*") + @GetMapping("/process/{id}") + public ResponseEntity downloadProcessFile(@PathVariable String id) throws IOException, URISyntaxException + { + byte[] resource = exportService.export(id); + String fileName = String.format("output_%s_%s.xlsx", id, System.currentTimeMillis()); + return this.stream(resource, MediaType.APPLICATION_OCTET_STREAM, fileName); + } + + private ResponseEntity stream(byte[] resource, MediaType mediaType, String fileName) + { + return ResponseEntity + .ok() + .contentType(mediaType) + .header("Content-Disposition", String.format("inline; filename=\"%s\"", fileName)) + .body(outputStream -> + { + InputStream inputStream = new ByteArrayInputStream(resource); + int nRead; + byte[] data = new byte[1024]; + while ((nRead = inputStream.read(data, 0, data.length)) != -1) + { + outputStream.write(data, 0, nRead); + } + inputStream.close(); + }); + } +} diff --git a/services/src/main/java/com/devrupt/services/controller/graphql/GraphQLController.java b/services/src/main/java/com/devrupt/services/controller/graphql/GraphQLController.java new file mode 100644 index 0000000..201e49e --- /dev/null +++ b/services/src/main/java/com/devrupt/services/controller/graphql/GraphQLController.java @@ -0,0 +1,45 @@ +package com.devrupt.services.controller.graphql; + +import com.devrupt.services.config.graphql.OneGraphQL; +import com.devrupt.services.config.graphql.RequestContent; +import com.devrupt.services.config.graphql.error.CustomGraphQLException; +import graphql.ExecutionResult; +import graphql.GraphQLError; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; +import java.util.stream.Collectors; + +@Controller +public class GraphQLController +{ + @Autowired + private OneGraphQL oneGraphQL; + + @CrossOrigin(origins = "*", allowedHeaders = "*") + @PostMapping(value = "/graphql", + consumes = MediaType.APPLICATION_JSON_VALUE, + produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity executeGraphQL(@RequestBody RequestContent request) + { + ExecutionResult executionResult = oneGraphQL.executeQuery(request); + if(executionResult.getErrors().isEmpty()) + { + return ResponseEntity.ok(executionResult.toSpecification()); + } + else + { + List errors = executionResult.getErrors().stream() + .map(CustomGraphQLException::new) + .collect(Collectors.toList()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(errors); + } + } +} diff --git a/services/src/main/java/com/devrupt/services/controller/rest/identity/IdentityController.java b/services/src/main/java/com/devrupt/services/controller/rest/identity/IdentityController.java new file mode 100644 index 0000000..2c3dcf1 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/controller/rest/identity/IdentityController.java @@ -0,0 +1,37 @@ +package com.devrupt.services.controller.rest.identity; + +import com.devrupt.services.config.restTemplate.exception.RestTemplateException; +import com.devrupt.services.dto.identity.TokenRequest; +import com.devrupt.services.dto.identity.TokenResponse; +import com.devrupt.services.service.identity.IdentityService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +@CrossOrigin(origins = "*", allowedHeaders = "*") +@Controller +@RequestMapping(value = "/token") +public class IdentityController +{ + @Autowired + protected IdentityService identityService; + + @PostMapping(value = "/exchange") + public ResponseEntity exchangeToken(@RequestBody TokenRequest tokenRequest) + { + return ResponseEntity.ok(identityService.exchangeToken(tokenRequest)); + } + + @PostMapping(value = "/renew") + public ResponseEntity renewToken(@RequestBody TokenRequest tokenRequest) + { + return ResponseEntity.ok(identityService.renewToken(tokenRequest)); + } + + @ExceptionHandler({RestTemplateException.class}) + public ResponseEntity handleException(RestTemplateException ex) + { + return ResponseEntity.status(ex.getStatus()).body(ex.getMessage()); + } +} diff --git a/services/src/main/java/com/devrupt/services/dto/BaseFilter.java b/services/src/main/java/com/devrupt/services/dto/BaseFilter.java new file mode 100644 index 0000000..a31738b --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/BaseFilter.java @@ -0,0 +1,13 @@ +package com.devrupt.services.dto; + +import lombok.Data; + +@Data +public class BaseFilter +{ + private String refreshToken; + + private Integer pageNumber; + + private Integer pageSize; +} diff --git a/services/src/main/java/com/devrupt/services/dto/MonetaryDto.java b/services/src/main/java/com/devrupt/services/dto/MonetaryDto.java new file mode 100644 index 0000000..9ff06cb --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/MonetaryDto.java @@ -0,0 +1,19 @@ +package com.devrupt.services.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class MonetaryDto implements Serializable { + private static final long serialVersionUID = -2502235659881995209L; + + private BigDecimal amount; + private BigDecimal grossAmount; + private BigDecimal netAmount; + private String vatType; + private Double vatPercent; + private String currency; + +} diff --git a/services/src/main/java/com/devrupt/services/dto/identity/ApaleoClientDto.java b/services/src/main/java/com/devrupt/services/dto/identity/ApaleoClientDto.java new file mode 100644 index 0000000..d2c7c01 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/identity/ApaleoClientDto.java @@ -0,0 +1,22 @@ +package com.devrupt.services.dto.identity; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class ApaleoClientDto implements Serializable +{ + private static final long serialVersionUID = 442043984480723363L; + + private List allowScopeList; + + private String clientId; +} diff --git a/services/src/main/java/com/devrupt/services/dto/identity/TokenRequest.java b/services/src/main/java/com/devrupt/services/dto/identity/TokenRequest.java new file mode 100644 index 0000000..91e6992 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/identity/TokenRequest.java @@ -0,0 +1,29 @@ +package com.devrupt.services.dto.identity; + +import com.fasterxml.jackson.annotation.JsonAlias; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TokenRequest implements Serializable { + private static final long serialVersionUID = -1515159842729588157L; + + private String idempotencyKey; + + private String code; + + private String clientId; + + @JsonAlias({"redirectUri"}) + private String redirectUrl; + + private String refreshToken; + +} diff --git a/services/src/main/java/com/devrupt/services/dto/identity/TokenRequestGrantTypeEnum.java b/services/src/main/java/com/devrupt/services/dto/identity/TokenRequestGrantTypeEnum.java new file mode 100644 index 0000000..dfa4606 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/identity/TokenRequestGrantTypeEnum.java @@ -0,0 +1,6 @@ +package com.devrupt.services.dto.identity; + +public enum TokenRequestGrantTypeEnum { + authorization_code, + refresh_token +} diff --git a/services/src/main/java/com/devrupt/services/dto/identity/TokenResponse.java b/services/src/main/java/com/devrupt/services/dto/identity/TokenResponse.java new file mode 100644 index 0000000..1757924 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/identity/TokenResponse.java @@ -0,0 +1,26 @@ +package com.devrupt.services.dto.identity; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class TokenResponse implements Serializable { + private static final long serialVersionUID = 5494766646395259427L; + + @JsonProperty(value = "id_token") + private String idToken; + + @JsonProperty(value = "access_token") + private String accessToken; + + @JsonProperty(value = "expires_in") + private Long expiresIn; + + @JsonProperty(value = "token_type") + private String tokenType; + + @JsonProperty(value = "refresh_token") + private String refreshToken; +} diff --git a/services/src/main/java/com/devrupt/services/dto/integration/CustomerLifetimeValueDto.java b/services/src/main/java/com/devrupt/services/dto/integration/CustomerLifetimeValueDto.java new file mode 100644 index 0000000..1a6efce --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/integration/CustomerLifetimeValueDto.java @@ -0,0 +1,40 @@ +package com.devrupt.services.dto.integration; + +import com.fasterxml.jackson.annotation.JsonAlias; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class CustomerLifetimeValueDto implements Serializable +{ + private static final long serialVersionUID = -1123138396743430876L; + + @JsonAlias({"FirstName"}) + private String firstName; + + @JsonAlias({"LastName"}) + private String lastName; + + @JsonAlias({"Email"}) + private String email; + + @JsonAlias({"GuestID"}) + private String guestId; + + @JsonAlias({"LTV_Class"}) + private Double ltvClass; + + @JsonAlias({"CLV_Low_Prob"}) + private Double low; + + @JsonAlias({"CLV_Mid_Prob"}) + private Double mid; + + @JsonAlias({"CLV_High_Prob"}) + private Double high; + + @JsonAlias({"Guest_Type"}) + private String type; + +} diff --git a/services/src/main/java/com/devrupt/services/dto/integration/CustomerLifetimeValueFilter.java b/services/src/main/java/com/devrupt/services/dto/integration/CustomerLifetimeValueFilter.java new file mode 100644 index 0000000..c1908ea --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/integration/CustomerLifetimeValueFilter.java @@ -0,0 +1,20 @@ +package com.devrupt.services.dto.integration; + +import com.devrupt.services.dto.BaseFilter; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class CustomerLifetimeValueFilter extends BaseFilter implements Serializable +{ + private static final long serialVersionUID = 7473289124511820300L; + + private String processId; +} diff --git a/services/src/main/java/com/devrupt/services/dto/integration/ProcessDetails.java b/services/src/main/java/com/devrupt/services/dto/integration/ProcessDetails.java new file mode 100644 index 0000000..28350ab --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/integration/ProcessDetails.java @@ -0,0 +1,21 @@ +package com.devrupt.services.dto.integration; + +import com.fasterxml.jackson.annotation.JsonAlias; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class ProcessDetails implements Serializable +{ + private static final long serialVersionUID = 6814152055794948012L; + + @JsonAlias({"TotalRecords"}) + private Integer totalRecordCount; +} diff --git a/services/src/main/java/com/devrupt/services/dto/integration/ProcessDto.java b/services/src/main/java/com/devrupt/services/dto/integration/ProcessDto.java new file mode 100644 index 0000000..de0b1e2 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/integration/ProcessDto.java @@ -0,0 +1,41 @@ +package com.devrupt.services.dto.integration; + +import com.fasterxml.jackson.annotation.JsonAlias; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ProcessDto implements Serializable +{ + private static final long serialVersionUID = 9181085176270957507L; + + private String id; + + @JsonAlias({"status"}) + private ProcessStatusEnum status; + + @JsonAlias({"message"}) + private String message; + + @JsonAlias({"dataList"}) + private List response; + + @JsonAlias({"errorlog"}) + private String error; + + private Integer recordCount; + + public ProcessDto(String id, ProcessStatusEnum status, String message, Integer recordCount) + { + this.id = id; + this.status = status; + this.message = message; + this.recordCount = recordCount; + } +} diff --git a/services/src/main/java/com/devrupt/services/dto/integration/ProcessFilter.java b/services/src/main/java/com/devrupt/services/dto/integration/ProcessFilter.java new file mode 100644 index 0000000..1bc6c93 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/integration/ProcessFilter.java @@ -0,0 +1,14 @@ +package com.devrupt.services.dto.integration; + +import com.devrupt.services.dto.BaseFilter; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ProcessFilter extends BaseFilter implements Serializable +{ + private static final long serialVersionUID = 7473289124511820300L; + + private String processId; +} diff --git a/services/src/main/java/com/devrupt/services/dto/integration/ProcessInput.java b/services/src/main/java/com/devrupt/services/dto/integration/ProcessInput.java new file mode 100644 index 0000000..66d741d --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/integration/ProcessInput.java @@ -0,0 +1,22 @@ +package com.devrupt.services.dto.integration; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProcessInput implements Serializable +{ + private static final long serialVersionUID = 2063062041934642956L; + + private String processId; + private String refreshToken; + private List hotelIdList; +} diff --git a/services/src/main/java/com/devrupt/services/dto/integration/ProcessStatusEnum.java b/services/src/main/java/com/devrupt/services/dto/integration/ProcessStatusEnum.java new file mode 100644 index 0000000..d72f421 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/integration/ProcessStatusEnum.java @@ -0,0 +1,10 @@ +package com.devrupt.services.dto.integration; + +public enum ProcessStatusEnum +{ + SUCCESS, + READY, + ERROR, + PROCESSING, + +} diff --git a/services/src/main/java/com/devrupt/services/dto/integration/TrainingDataInput.java b/services/src/main/java/com/devrupt/services/dto/integration/TrainingDataInput.java new file mode 100644 index 0000000..1d513d2 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/integration/TrainingDataInput.java @@ -0,0 +1,73 @@ +package com.devrupt.services.dto.integration; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.OffsetDateTime; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class TrainingDataInput implements Serializable +{ + private static final long serialVersionUID = 5158060545432321452L; + + @JsonProperty(value = "CreatedDate") + @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") + private OffsetDateTime createdDate; + + @JsonProperty(value = "Status") + private String status; + + @JsonProperty(value = "RoomGroupID") + private String roomGroupId; + + @JsonProperty(value = "ArrivalDate") + @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") + private OffsetDateTime arrivalDate; + + @JsonProperty(value = "DepartureDate") + @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss") + private OffsetDateTime departureDate; + + @JsonProperty(value = "RoomPrice") + private BigDecimal roomPrice; + + @JsonProperty(value = "LastName") + private String lastName; + + @JsonProperty(value = "FirstName") + private String firstName; + + @JsonProperty(value = "Nights") + private Integer totalNight; + + @JsonProperty(value = "Channel") + private String channel; + + @JsonProperty(value = "TotalPayment") + private BigDecimal totalAmount; + + @JsonProperty(value = "Country") + private String countryCode; + + @JsonProperty(value = "Adults") + private Integer adults; + + @JsonProperty(value = "Children") + private Integer children; + + @JsonProperty(value = "Email") + private String email; + + @JsonProperty(value = "RoomNo") + private String roomNumber; + +} diff --git a/services/src/main/java/com/devrupt/services/dto/reservation/ReservationDto.java b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationDto.java new file mode 100644 index 0000000..d62f76a --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationDto.java @@ -0,0 +1,55 @@ +package com.devrupt.services.dto.reservation; + +import com.devrupt.services.dto.MonetaryDto; +import com.fasterxml.jackson.annotation.JsonAlias; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serializable; +import java.time.OffsetDateTime; +import java.util.List; + +@Data +public class ReservationDto implements Serializable +{ + private static final long serialVersionUID = 3267036301862940434L; + + @JsonAlias({"id"}) + private String id; + + @JsonAlias({"bookingId"}) + private String bookingId; + + @JsonAlias({"status"}) + private String status; + + @JsonAlias({"arrival"}) + private OffsetDateTime arrival; + + @JsonAlias({"departure"}) + private OffsetDateTime departure; + + @JsonAlias({"created"}) + private OffsetDateTime created; + + @JsonAlias({"adults"}) + private Integer adults; + + @JsonAlias({"childrenAges"}) + private List childrenAgeList; + + @JsonAlias({"channelCode"}) + private String channelCode; + + @JsonAlias({"timeSlices"}) + private List reservationTimeSliceList; + + @JsonAlias({"unit"}) + private ReservationRoomDto room; + + @JsonAlias({"primaryGuest"}) + private ReservationGuestDto guest; + + @JsonAlias({"totalGrossAmount"}) + private MonetaryDto totalGrossAmount; +} diff --git a/services/src/main/java/com/devrupt/services/dto/reservation/ReservationFilter.java b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationFilter.java new file mode 100644 index 0000000..9197a34 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationFilter.java @@ -0,0 +1,21 @@ +package com.devrupt.services.dto.reservation; + +import com.devrupt.services.dto.BaseFilter; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ReservationFilter extends BaseFilter implements Serializable +{ + private static final long serialVersionUID = 4676727692017506990L; + + private List hotelIdList; +} diff --git a/services/src/main/java/com/devrupt/services/dto/reservation/ReservationGuestDto.java b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationGuestDto.java new file mode 100644 index 0000000..1d60469 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationGuestDto.java @@ -0,0 +1,31 @@ +package com.devrupt.services.dto.reservation; + +import com.fasterxml.jackson.annotation.JsonAlias; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ReservationGuestDto implements Serializable +{ + private static final long serialVersionUID = -3914220353796288463L; + + @JsonAlias({"firstName"}) + private String firstName; + + @JsonAlias({"lastName"}) + private String lastName; + + @JsonAlias({"email"}) + private String email; + + @JsonAlias({"address"}) + private Address address; + + @Data + public static class Address + { + @JsonAlias({"countryCode"}) + private String countryCode; + } +} diff --git a/services/src/main/java/com/devrupt/services/dto/reservation/ReservationListDto.java b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationListDto.java new file mode 100644 index 0000000..f0d7432 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationListDto.java @@ -0,0 +1,24 @@ +package com.devrupt.services.dto.reservation; + +import com.fasterxml.jackson.annotation.JsonAlias; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class ReservationListDto implements Serializable +{ + private static final long serialVersionUID = -3822301434422959925L; + + @JsonAlias({"reservations"}) + private List data; + @JsonAlias({"count"}) + private Integer count; +} diff --git a/services/src/main/java/com/devrupt/services/dto/reservation/ReservationRoomDto.java b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationRoomDto.java new file mode 100644 index 0000000..9185237 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationRoomDto.java @@ -0,0 +1,24 @@ +package com.devrupt.services.dto.reservation; + +import com.fasterxml.jackson.annotation.JsonAlias; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ReservationRoomDto implements Serializable +{ + private static final long serialVersionUID = -3935438165956950691L; + + @JsonAlias({"id"}) + private String id; + + @JsonAlias({"name"}) + private String roomNumber; + + @JsonAlias({"description"}) + private String description; + + @JsonAlias({"unitGroupId"}) + private String roomGroupId; +} diff --git a/services/src/main/java/com/devrupt/services/dto/reservation/ReservationTimeSliceDto.java b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationTimeSliceDto.java new file mode 100644 index 0000000..4628cd1 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/reservation/ReservationTimeSliceDto.java @@ -0,0 +1,19 @@ +package com.devrupt.services.dto.reservation; + +import com.devrupt.services.dto.MonetaryDto; +import com.fasterxml.jackson.annotation.JsonAlias; +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ReservationTimeSliceDto implements Serializable { + private static final long serialVersionUID = -1542778199050489922L; + + private String from; + private String to; + + @JsonAlias({"baseAmount"}) + private MonetaryDto roomPrice; + +} diff --git a/services/src/main/java/com/devrupt/services/dto/statistic/ClvClassDto.java b/services/src/main/java/com/devrupt/services/dto/statistic/ClvClassDto.java new file mode 100644 index 0000000..14ee0e3 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/statistic/ClvClassDto.java @@ -0,0 +1,19 @@ +package com.devrupt.services.dto.statistic; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ClvClassDto implements Serializable +{ + private static final long serialVersionUID = -2245077293398638709L; + + private String name; + private List typeList; +} diff --git a/services/src/main/java/com/devrupt/services/dto/statistic/ClvClassFilter.java b/services/src/main/java/com/devrupt/services/dto/statistic/ClvClassFilter.java new file mode 100644 index 0000000..ad7e651 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/statistic/ClvClassFilter.java @@ -0,0 +1,20 @@ +package com.devrupt.services.dto.statistic; + +import com.devrupt.services.dto.BaseFilter; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class ClvClassFilter extends BaseFilter implements Serializable +{ + private static final long serialVersionUID = 2894781484865687230L; + + private String processId; +} diff --git a/services/src/main/java/com/devrupt/services/dto/statistic/ClvTypeDto.java b/services/src/main/java/com/devrupt/services/dto/statistic/ClvTypeDto.java new file mode 100644 index 0000000..8a2e64c --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/statistic/ClvTypeDto.java @@ -0,0 +1,18 @@ +package com.devrupt.services.dto.statistic; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ClvTypeDto implements Serializable +{ + private static final long serialVersionUID = 1716199173524538297L; + + private String name; + private Integer value; +} diff --git a/services/src/main/java/com/devrupt/services/dto/statistic/IdentifiedGuestSegmentationDto.java b/services/src/main/java/com/devrupt/services/dto/statistic/IdentifiedGuestSegmentationDto.java new file mode 100644 index 0000000..6184801 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/statistic/IdentifiedGuestSegmentationDto.java @@ -0,0 +1,18 @@ +package com.devrupt.services.dto.statistic; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class IdentifiedGuestSegmentationDto implements Serializable +{ + private static final long serialVersionUID = -663898947565644922L; + + private String segment; + private Double value; +} diff --git a/services/src/main/java/com/devrupt/services/dto/statistic/IdentifiedGuestSegmentationFilter.java b/services/src/main/java/com/devrupt/services/dto/statistic/IdentifiedGuestSegmentationFilter.java new file mode 100644 index 0000000..25287ae --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/statistic/IdentifiedGuestSegmentationFilter.java @@ -0,0 +1,20 @@ +package com.devrupt.services.dto.statistic; + +import com.devrupt.services.dto.BaseFilter; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class IdentifiedGuestSegmentationFilter extends BaseFilter implements Serializable +{ + private static final long serialVersionUID = 3021482079119037258L; + + private String processId; +} diff --git a/services/src/main/java/com/devrupt/services/dto/statistic/StatisticDto.java b/services/src/main/java/com/devrupt/services/dto/statistic/StatisticDto.java new file mode 100644 index 0000000..6916350 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/statistic/StatisticDto.java @@ -0,0 +1,19 @@ +package com.devrupt.services.dto.statistic; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class StatisticDto implements Serializable +{ + private static final long serialVersionUID = 1674027690025535410L; + + private Integer totalIdentifiedGuest; + private Integer totalPotentialVipGuest; + private Integer highValueGuest; +} diff --git a/services/src/main/java/com/devrupt/services/dto/statistic/StatisticFilter.java b/services/src/main/java/com/devrupt/services/dto/statistic/StatisticFilter.java new file mode 100644 index 0000000..b2ce651 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/dto/statistic/StatisticFilter.java @@ -0,0 +1,20 @@ +package com.devrupt.services.dto.statistic; + +import com.devrupt.services.dto.BaseFilter; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class StatisticFilter extends BaseFilter implements Serializable +{ + private static final long serialVersionUID = 5718550641540688377L; + + private String processId; +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/identity/ExchangeTokenFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/identity/ExchangeTokenFetcher.java new file mode 100644 index 0000000..fbf812e --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/identity/ExchangeTokenFetcher.java @@ -0,0 +1,27 @@ +package com.devrupt.services.fetcher.identity; + +import com.devrupt.services.dto.identity.TokenRequest; +import com.devrupt.services.dto.identity.TokenResponse; +import com.devrupt.services.service.identity.IdentityService; +import com.fasterxml.jackson.databind.ObjectMapper; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class ExchangeTokenFetcher implements DataFetcher +{ + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private IdentityService tokenService; + + @Override + public TokenResponse get(DataFetchingEnvironment environment) throws Exception + { + TokenRequest tokenRequest = objectMapper.convertValue(environment.getArgument("input"), TokenRequest.class); + return tokenService.exchangeToken(tokenRequest); + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/identity/GetApaleoClientFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/identity/GetApaleoClientFetcher.java new file mode 100644 index 0000000..3c0dcf8 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/identity/GetApaleoClientFetcher.java @@ -0,0 +1,21 @@ +package com.devrupt.services.fetcher.identity; + +import com.devrupt.services.dto.identity.ApaleoClientDto; +import com.devrupt.services.service.identity.IdentityService; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class GetApaleoClientFetcher implements DataFetcher +{ + @Autowired + private IdentityService tokenService; + + @Override + public ApaleoClientDto get(DataFetchingEnvironment environment) throws Exception + { + return tokenService.getApaleoClient(); + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/identity/IdentityContainer.java b/services/src/main/java/com/devrupt/services/fetcher/identity/IdentityContainer.java new file mode 100644 index 0000000..92b7024 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/identity/IdentityContainer.java @@ -0,0 +1,43 @@ +package com.devrupt.services.fetcher.identity; + +import com.devrupt.services.config.graphql.typeWiring.FetcherContainer; +import graphql.schema.DataFetcher; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class IdentityContainer implements FetcherContainer +{ + @Autowired + private GetApaleoClientFetcher getApaleoClientFetcher; + + @Autowired + private ExchangeTokenFetcher exchangeTokenFetcher; + + @Autowired + private RenewTokenFetcher renewTokenFetcher; + + @Override + public Map> query() + { + Map> query = new HashMap<>(); + + query.put("getApaleoClient", getApaleoClientFetcher); + + return query; + } + + @Override + public Map> mutation() + { + Map> mutation = new HashMap<>(); + + mutation.put("exchangeToken", exchangeTokenFetcher); + mutation.put("renewToken", renewTokenFetcher); + + return mutation; + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/identity/RenewTokenFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/identity/RenewTokenFetcher.java new file mode 100644 index 0000000..1d8a68e --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/identity/RenewTokenFetcher.java @@ -0,0 +1,27 @@ +package com.devrupt.services.fetcher.identity; + +import com.devrupt.services.dto.identity.TokenRequest; +import com.devrupt.services.dto.identity.TokenResponse; +import com.devrupt.services.service.identity.IdentityService; +import com.fasterxml.jackson.databind.ObjectMapper; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class RenewTokenFetcher implements DataFetcher +{ + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private IdentityService tokenService; + + @Override + public TokenResponse get(DataFetchingEnvironment environment) throws Exception + { + TokenRequest tokenRequest = objectMapper.convertValue(environment.getArgument("input"), TokenRequest.class); + return tokenService.renewToken(tokenRequest); + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/integration/GetCustomerLifetimeValueListFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/integration/GetCustomerLifetimeValueListFetcher.java new file mode 100644 index 0000000..0ec006b --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/integration/GetCustomerLifetimeValueListFetcher.java @@ -0,0 +1,29 @@ +package com.devrupt.services.fetcher.integration; + +import com.devrupt.services.dto.integration.CustomerLifetimeValueDto; +import com.devrupt.services.dto.integration.CustomerLifetimeValueFilter; +import com.devrupt.services.service.integration.IntegrationService; +import com.fasterxml.jackson.databind.ObjectMapper; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class GetCustomerLifetimeValueListFetcher implements DataFetcher> +{ + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private IntegrationService integrationService; + + @Override + public List get(DataFetchingEnvironment environment) throws Exception + { + CustomerLifetimeValueFilter filter = objectMapper.convertValue(environment.getArgument("filter"), CustomerLifetimeValueFilter.class); + return integrationService.getCustomerLifetimeValueList(filter); + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/integration/GetProcessStateFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/integration/GetProcessStateFetcher.java new file mode 100644 index 0000000..ce69e98 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/integration/GetProcessStateFetcher.java @@ -0,0 +1,27 @@ +package com.devrupt.services.fetcher.integration; + +import com.devrupt.services.dto.integration.ProcessDto; +import com.devrupt.services.dto.integration.ProcessFilter; +import com.devrupt.services.service.integration.IntegrationService; +import com.fasterxml.jackson.databind.ObjectMapper; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class GetProcessStateFetcher implements DataFetcher +{ + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private IntegrationService integrationService; + + @Override + public ProcessDto get(DataFetchingEnvironment environment) throws Exception + { + ProcessFilter filter = objectMapper.convertValue(environment.getArgument("filter"), ProcessFilter.class); + return integrationService.getProcessState(filter); + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/integration/GetTotalRecordCountFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/integration/GetTotalRecordCountFetcher.java new file mode 100644 index 0000000..cd47f80 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/integration/GetTotalRecordCountFetcher.java @@ -0,0 +1,26 @@ +package com.devrupt.services.fetcher.integration; + +import com.devrupt.services.dto.integration.ProcessFilter; +import com.devrupt.services.service.integration.IntegrationService; +import com.fasterxml.jackson.databind.ObjectMapper; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class GetTotalRecordCountFetcher implements DataFetcher +{ + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private IntegrationService integrationService; + + @Override + public Integer get(DataFetchingEnvironment environment) throws Exception + { + ProcessFilter filter = objectMapper.convertValue(environment.getArgument("filter"), ProcessFilter.class); + return integrationService.getTotalRecordCount(filter); + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/integration/IntegrationContainer.java b/services/src/main/java/com/devrupt/services/fetcher/integration/IntegrationContainer.java new file mode 100644 index 0000000..02b7ba7 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/integration/IntegrationContainer.java @@ -0,0 +1,47 @@ +package com.devrupt.services.fetcher.integration; + +import com.devrupt.services.config.graphql.typeWiring.FetcherContainer; +import graphql.schema.DataFetcher; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class IntegrationContainer implements FetcherContainer +{ + @Autowired + private GetProcessStateFetcher getProcessStateFetcher; + + @Autowired + private StartProcessFetcher startProcessFetcher; + + @Autowired + private GetCustomerLifetimeValueListFetcher getCustomerLifetimeValueListFetcher; + + @Autowired + private GetTotalRecordCountFetcher getTotalRecordCountFetcher; + + @Override + public Map> query() + { + Map> query = new HashMap<>(); + + query.put("getProcessState", getProcessStateFetcher); + query.put("getCustomerLifetimeValueList", getCustomerLifetimeValueListFetcher); + query.put("getTotalRecordCount", getTotalRecordCountFetcher); + + return query; + } + + @Override + public Map> mutation() + { + Map> mutation = new HashMap<>(); + + mutation.put("startProcess", startProcessFetcher); + + return mutation; + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/integration/StartProcessFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/integration/StartProcessFetcher.java new file mode 100644 index 0000000..5116b9c --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/integration/StartProcessFetcher.java @@ -0,0 +1,27 @@ +package com.devrupt.services.fetcher.integration; + +import com.devrupt.services.dto.integration.ProcessDto; +import com.devrupt.services.dto.integration.ProcessInput; +import com.devrupt.services.service.integration.IntegrationService; +import com.fasterxml.jackson.databind.ObjectMapper; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class StartProcessFetcher implements DataFetcher +{ + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private IntegrationService integrationService; + + @Override + public ProcessDto get(DataFetchingEnvironment environment) throws Exception + { + ProcessInput input = objectMapper.convertValue(environment.getArgument("input"), ProcessInput.class); + return integrationService.startProcess(input); + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/reservation/GetReservationListFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/reservation/GetReservationListFetcher.java new file mode 100644 index 0000000..dc3993d --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/reservation/GetReservationListFetcher.java @@ -0,0 +1,30 @@ +package com.devrupt.services.fetcher.reservation; + +import com.devrupt.services.dto.reservation.ReservationFilter; +import com.devrupt.services.dto.reservation.ReservationListDto; +import com.devrupt.services.service.reservation.ReservationService; +import com.fasterxml.jackson.databind.ObjectMapper; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; + +@Component +public class GetReservationListFetcher implements DataFetcher +{ + @Autowired + @Qualifier(value = "objectMapper") + private ObjectMapper objectMapper; + + @Autowired + private ReservationService reservationService; + + @Override + public ReservationListDto get(DataFetchingEnvironment environment) throws Exception + { + ReservationFilter filter = objectMapper.convertValue(environment.getArgument("filter"), ReservationFilter.class); + return reservationService.getReservationList(filter); + + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/reservation/ReservationContainer.java b/services/src/main/java/com/devrupt/services/fetcher/reservation/ReservationContainer.java new file mode 100644 index 0000000..6e1f444 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/reservation/ReservationContainer.java @@ -0,0 +1,34 @@ +package com.devrupt.services.fetcher.reservation; + +import com.devrupt.services.config.graphql.typeWiring.FetcherContainer; +import graphql.schema.DataFetcher; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class ReservationContainer implements FetcherContainer +{ + @Autowired + private GetReservationListFetcher getReservationListFetcher; + + @Override + public Map> query() + { + Map> query = new HashMap<>(); + + query.put("getReservationList", getReservationListFetcher); + + return query; + } + + @Override + public Map> mutation() + { + Map> mutation = new HashMap<>(); + + return mutation; + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/statistic/GetClvClassListFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/statistic/GetClvClassListFetcher.java new file mode 100644 index 0000000..fd332ad --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/statistic/GetClvClassListFetcher.java @@ -0,0 +1,32 @@ +package com.devrupt.services.fetcher.statistic; + +import com.devrupt.services.dto.statistic.ClvClassDto; +import com.devrupt.services.dto.statistic.ClvClassFilter; +import com.devrupt.services.service.statistic.StatisticService; +import com.fasterxml.jackson.databind.ObjectMapper; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class GetClvClassListFetcher implements DataFetcher> +{ + @Autowired + @Qualifier(value = "objectMapper") + private ObjectMapper objectMapper; + + @Autowired + private StatisticService statisticService; + + @Override + public List get(DataFetchingEnvironment environment) throws Exception + { + ClvClassFilter filter = objectMapper.convertValue(environment.getArgument("filter"), ClvClassFilter.class); + return statisticService.getClvClassList(filter); + + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/statistic/GetIdentifiedGuestSegmentationFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/statistic/GetIdentifiedGuestSegmentationFetcher.java new file mode 100644 index 0000000..8d344f3 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/statistic/GetIdentifiedGuestSegmentationFetcher.java @@ -0,0 +1,32 @@ +package com.devrupt.services.fetcher.statistic; + +import com.devrupt.services.dto.statistic.IdentifiedGuestSegmentationDto; +import com.devrupt.services.dto.statistic.IdentifiedGuestSegmentationFilter; +import com.devrupt.services.service.statistic.StatisticService; +import com.fasterxml.jackson.databind.ObjectMapper; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +public class GetIdentifiedGuestSegmentationFetcher implements DataFetcher> +{ + @Autowired + @Qualifier(value = "objectMapper") + private ObjectMapper objectMapper; + + @Autowired + private StatisticService statisticService; + + @Override + public List get(DataFetchingEnvironment environment) throws Exception + { + IdentifiedGuestSegmentationFilter filter = objectMapper.convertValue(environment.getArgument("filter"), IdentifiedGuestSegmentationFilter.class); + return statisticService.getIdentifiedGuestSegmentation(filter); + + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/statistic/GetStatisticFetcher.java b/services/src/main/java/com/devrupt/services/fetcher/statistic/GetStatisticFetcher.java new file mode 100644 index 0000000..bd72e0c --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/statistic/GetStatisticFetcher.java @@ -0,0 +1,30 @@ +package com.devrupt.services.fetcher.statistic; + +import com.devrupt.services.dto.statistic.StatisticDto; +import com.devrupt.services.dto.statistic.StatisticFilter; +import com.devrupt.services.service.statistic.StatisticService; +import com.fasterxml.jackson.databind.ObjectMapper; +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Component; + +@Component +public class GetStatisticFetcher implements DataFetcher +{ + @Autowired + @Qualifier(value = "objectMapper") + private ObjectMapper objectMapper; + + @Autowired + private StatisticService statisticService; + + @Override + public StatisticDto get(DataFetchingEnvironment environment) throws Exception + { + StatisticFilter filter = objectMapper.convertValue(environment.getArgument("filter"), StatisticFilter.class); + return statisticService.getStatistic(filter); + + } +} diff --git a/services/src/main/java/com/devrupt/services/fetcher/statistic/StatisticContainer.java b/services/src/main/java/com/devrupt/services/fetcher/statistic/StatisticContainer.java new file mode 100644 index 0000000..3f4556b --- /dev/null +++ b/services/src/main/java/com/devrupt/services/fetcher/statistic/StatisticContainer.java @@ -0,0 +1,42 @@ +package com.devrupt.services.fetcher.statistic; + +import com.devrupt.services.config.graphql.typeWiring.FetcherContainer; +import graphql.schema.DataFetcher; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class StatisticContainer implements FetcherContainer +{ + @Autowired + private GetClvClassListFetcher getClvClassListFetcher; + + @Autowired + private GetIdentifiedGuestSegmentationFetcher getIdentifiedGuestSegmentationFetcher; + + @Autowired + private GetStatisticFetcher getStatisticFetcher; + + @Override + public Map> query() + { + Map> query = new HashMap<>(); + + query.put("getClvClassList", getClvClassListFetcher); + query.put("getIdentifiedGuestSegmentation", getIdentifiedGuestSegmentationFetcher); + query.put("getStatistic", getStatisticFetcher); + + return query; + } + + @Override + public Map> mutation() + { + Map> mutation = new HashMap<>(); + + return mutation; + } +} diff --git a/services/src/main/java/com/devrupt/services/service/export/ExportService.java b/services/src/main/java/com/devrupt/services/service/export/ExportService.java new file mode 100644 index 0000000..f71b70b --- /dev/null +++ b/services/src/main/java/com/devrupt/services/service/export/ExportService.java @@ -0,0 +1,8 @@ +package com.devrupt.services.service.export; + +import java.io.IOException; + +public interface ExportService +{ + byte[] export(String processId) throws IOException; +} diff --git a/services/src/main/java/com/devrupt/services/service/export/ExportServiceImpl.java b/services/src/main/java/com/devrupt/services/service/export/ExportServiceImpl.java new file mode 100644 index 0000000..2a250f4 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/service/export/ExportServiceImpl.java @@ -0,0 +1,108 @@ +package com.devrupt.services.service.export; + +import com.devrupt.services.dto.integration.CustomerLifetimeValueDto; +import com.devrupt.services.dto.integration.CustomerLifetimeValueFilter; +import com.devrupt.services.service.integration.IntegrationService; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.util.List; + +@Service +public class ExportServiceImpl implements ExportService +{ + @Autowired + private IntegrationService integrationService; + + @Override + public byte[] export(String processId) throws IOException + { + List getCustomerLifetimeValueList = + integrationService.getCustomerLifetimeValueList(CustomerLifetimeValueFilter + .builder() + .processId(processId) + .build()); + + + return writeExcel(getCustomerLifetimeValueList); + } + + public byte[] writeExcel(List customerLifetimeValueList) throws IOException + { + XSSFWorkbook workbook = new XSSFWorkbook(); + Sheet sheet = workbook.createSheet("Data"); + + int rowCount = 0; + + String[] headers = new String[] {"Guest ID", "First Name", "Last Name", "Email", "CLV Class", "Low", "Mid", "High", "Type"}; + Row headerRow = sheet.createRow(rowCount++); + for (int i = 0; i < headers.length; i++) + { + Cell cell = headerRow.createCell(i); + cell.setCellValue(headers[i]); + } + + for (CustomerLifetimeValueDto customerLifetimeValue : customerLifetimeValueList) + { + Row row = sheet.createRow(rowCount++); + writeBooking(customerLifetimeValue, row); + } + + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + workbook.write(outputStream); + outputStream.close(); + workbook.close(); + return outputStream.toByteArray(); + } + + private void writeBooking(CustomerLifetimeValueDto data, Row row) + { + int i = 0; + + Cell cell; + String cellValue; + + cellValue = data.getGuestId() != null ? data.getGuestId() : ""; + cell = row.createCell(i++); + cell.setCellValue(cellValue); + + cellValue = data.getFirstName() != null ? data.getFirstName() : ""; + cell = row.createCell(i++); + cell.setCellValue(cellValue); + + cellValue = data.getLastName() != null ? data.getLastName() : ""; + cell = row.createCell(i++); + cell.setCellValue(cellValue); + + cellValue = data.getEmail() != null ? data.getEmail() : ""; + cell = row.createCell(i++); + cell.setCellValue(cellValue); + + cellValue = data.getLtvClass() != null ? data.getLtvClass().toString() : ""; + cell = row.createCell(i++); + cell.setCellValue(cellValue); + + cellValue = data.getLow() != null ? data.getLow().toString() : ""; + cell = row.createCell(i++); + cell.setCellValue(cellValue); + + cellValue = data.getMid() != null ? data.getMid().toString() : ""; + cell = row.createCell(i++); + cell.setCellValue(cellValue); + + cellValue = data.getHigh() != null ? data.getHigh().toString() : ""; + cell = row.createCell(i++); + cell.setCellValue(cellValue); + + cellValue = data.getType() != null ? data.getType() : ""; + cell = row.createCell(i++); + cell.setCellValue(cellValue); + + } +} diff --git a/services/src/main/java/com/devrupt/services/service/identity/IdentityService.java b/services/src/main/java/com/devrupt/services/service/identity/IdentityService.java new file mode 100644 index 0000000..04c35ab --- /dev/null +++ b/services/src/main/java/com/devrupt/services/service/identity/IdentityService.java @@ -0,0 +1,19 @@ +package com.devrupt.services.service.identity; + +import com.devrupt.services.dto.identity.ApaleoClientDto; +import com.devrupt.services.dto.identity.TokenRequest; +import com.devrupt.services.dto.identity.TokenResponse; +import org.springframework.http.HttpHeaders; + +import java.util.List; + +public interface IdentityService +{ + ApaleoClientDto getApaleoClient(); + + TokenResponse exchangeToken(TokenRequest requestToken); + + TokenResponse renewToken(TokenRequest requestToken); + + HttpHeaders getHeaderWithBearer(String refreshToken); +} diff --git a/services/src/main/java/com/devrupt/services/service/identity/IdentityServiceImpl.java b/services/src/main/java/com/devrupt/services/service/identity/IdentityServiceImpl.java new file mode 100644 index 0000000..4b23797 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/service/identity/IdentityServiceImpl.java @@ -0,0 +1,108 @@ +package com.devrupt.services.service.identity; + +import com.devrupt.services.dto.identity.ApaleoClientDto; +import com.devrupt.services.dto.identity.TokenRequest; +import com.devrupt.services.dto.identity.TokenRequestGrantTypeEnum; +import com.devrupt.services.dto.identity.TokenResponse; +import com.devrupt.services.utils.RestUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Service; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; + +import java.util.List; + +@Service +public class IdentityServiceImpl implements IdentityService +{ + @Value("${apaleo.api.token.endpoint}") + private String tokenEndpoint; + + @Value("${apaleo.client.id}") + private String clientId; + + @Value("${apaleo.client.secret}") + private String clientSecret; + + @Value("${apaleo.api.token.scope}") + private List tokenScopeList; + + @Autowired + private RestUtils restUtils; + + /** + * get predefined client id and scope list + * @return + */ + @Override + public ApaleoClientDto getApaleoClient() + { + return ApaleoClientDto.builder() + .allowScopeList(tokenScopeList) + .clientId(clientId) + .build(); + } + + /** + * Exchange authorization code for access token + * + * @param tokenRequest + * @return + */ + public TokenResponse exchangeToken(TokenRequest tokenRequest) { + + MultiValueMap body = new LinkedMultiValueMap<>(); + body.add("grant_type", TokenRequestGrantTypeEnum.authorization_code.name()); + body.add("code", tokenRequest.getCode()); + body.add("redirect_uri", tokenRequest.getRedirectUrl()); + body.add("client_id", this.clientId); + body.add("client_secret", this.clientSecret); + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + + return restUtils.constructRequestAndCall(tokenEndpoint, body, headers, HttpMethod.POST, TokenResponse.class); + } + + /** + * Use refresh token to renew access token + * + * @param tokenRequest + * @return + */ + public TokenResponse renewToken(TokenRequest tokenRequest) { + + MultiValueMap body = new LinkedMultiValueMap<>(); + body.add("grant_type", TokenRequestGrantTypeEnum.refresh_token.name()); + body.add("refresh_token", tokenRequest.getRefreshToken()); + body.add("client_id", this.clientId); + body.add("client_secret", this.clientSecret); + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + + return restUtils.constructRequestAndCall(tokenEndpoint, body, headers, HttpMethod.POST, TokenResponse.class); + } + + /** + * create header with Bearer Auth + * refresh token is required + * @param refreshToken + * @return + */ + @Override + public HttpHeaders getHeaderWithBearer(String refreshToken) + { + HttpHeaders headers = new HttpHeaders(); + TokenResponse tokenResponse = this.renewToken(TokenRequest.builder() + .refreshToken(refreshToken) + .build()); + headers.setBearerAuth(tokenResponse.getAccessToken()); + + return headers; + } +} diff --git a/services/src/main/java/com/devrupt/services/service/integration/IntegrationService.java b/services/src/main/java/com/devrupt/services/service/integration/IntegrationService.java new file mode 100644 index 0000000..55201a4 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/service/integration/IntegrationService.java @@ -0,0 +1,26 @@ +package com.devrupt.services.service.integration; + +import com.devrupt.services.dto.integration.*; +import com.fasterxml.jackson.core.JsonProcessingException; + +import java.io.IOException; +import java.util.List; + +public interface IntegrationService +{ + Double CLASS_HIGH = 3d; + Double CLASS_MID = 2d; + Double CLASS_LOW = 1d; + + String FIRST_TIME_GUEST = "1st-Time Guest"; + String RETURNING_GUEST = "Returning Guest"; + + ProcessDto startProcess(ProcessInput input) throws JsonProcessingException; + + ProcessDto getProcessState(ProcessFilter filter) throws JsonProcessingException; + + List getCustomerLifetimeValueList(CustomerLifetimeValueFilter filter) throws IOException; + + Integer getTotalRecordCount(ProcessFilter filter) throws JsonProcessingException; + +} diff --git a/services/src/main/java/com/devrupt/services/service/integration/IntegrationServiceImpl.java b/services/src/main/java/com/devrupt/services/service/integration/IntegrationServiceImpl.java new file mode 100644 index 0000000..5859a9d --- /dev/null +++ b/services/src/main/java/com/devrupt/services/service/integration/IntegrationServiceImpl.java @@ -0,0 +1,235 @@ +package com.devrupt.services.service.integration; + +import com.devrupt.services.dto.integration.*; +import com.devrupt.services.dto.reservation.ReservationDto; +import com.devrupt.services.dto.reservation.ReservationFilter; +import com.devrupt.services.service.reservation.ReservationService; +import com.devrupt.services.utils.RestUtils; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ClassPathResource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.File; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +@Service +public class IntegrationServiceImpl implements IntegrationService +{ + @Value("${mock-data}") + private Boolean mockData; + + @Value("${ai.api.send-input-data.endpoint}") + private String sendInputDataEndpoint; + + @Value("${ai.api.check-process-status.endpoint}") + private String checkProcessStatusEndpoint; + + @Value("${ai.api.get-prediction-file.endpoint}") + private String getPredictionFileEndpoint; + + @Value("${ai.api.get-file-details.endpoint}") + private String getFileDetailsEndpoint; + + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private ReservationService reservationService; + + @Autowired + private RestUtils restUtils; + + /** + * Get reservation data from apaleo, then transform to training input data, send input to AI services + * @param input + * @return + * @throws JsonProcessingException + */ + @Override + public ProcessDto startProcess(ProcessInput input) throws JsonProcessingException + { + String id = UUID.randomUUID().toString(); + Integer recordCount; + ReservationFilter reservationFilter = new ReservationFilter(); + reservationFilter.setRefreshToken(input.getRefreshToken()); + reservationFilter.setHotelIdList(input.getHotelIdList()); + + List reservationList = reservationService.getReservationList(reservationFilter).getData(); + List dataInputList = this.transformData(reservationList); + recordCount = dataInputList.size(); + + HttpHeaders headers = new HttpHeaders(); + headers.add("FileID", id); + headers.add("ForceRun", "1"); + headers.setContentType(MediaType.APPLICATION_JSON); + + CompletableFuture.runAsync(() ->{ + try + { + String inputAsJson = objectMapper.writeValueAsString(dataInputList); + restUtils.constructRequestAndCall(sendInputDataEndpoint, inputAsJson, headers, HttpMethod.POST, String.class); + } catch (JsonProcessingException e) + { + e.printStackTrace(); + } + }); + + return new ProcessDto(id, ProcessStatusEnum.PROCESSING, "Processing", recordCount); + } + + /** + * check process status + * @param filter + * @return + * @throws JsonProcessingException + */ + @Override + public ProcessDto getProcessState(ProcessFilter filter) throws JsonProcessingException + { + String processId = filter.getProcessId(); + HttpHeaders headers = new HttpHeaders(); + headers.add("FileID", processId); + + String response = restUtils.constructRequestAndCall(checkProcessStatusEndpoint, "", headers, HttpMethod.GET, String.class); + + ProcessDto process = objectMapper.readValue(response, ProcessDto.class); + process.setId(processId); + + return process; + } + + /** + * Get prediction data + * @param filter + * @return + * @throws IOException + */ + @Override + public List getCustomerLifetimeValueList( + CustomerLifetimeValueFilter filter) throws IOException + { + List rs = new ArrayList<>(); + + if (mockData) + { + File file = new ClassPathResource("template/data_output_schema.json").getFile(); + + JsonNode jsonNode = objectMapper.readTree(file); + rs = objectMapper.convertValue(jsonNode.get("dataList"), new TypeReference>() {}); + } + else + { + String processId = filter.getProcessId(); + HttpHeaders headers = new HttpHeaders(); + headers.add("FileID", processId); + + String response = restUtils.constructRequestAndCall(getPredictionFileEndpoint, "", headers, HttpMethod.GET, String.class); + ProcessDto process = objectMapper.readValue(response, ProcessDto.class); + if (process.getStatus().equals(ProcessStatusEnum.SUCCESS)) + { + rs = process.getResponse(); + } + } + return rs; + } + + + @Override + public Integer getTotalRecordCount(ProcessFilter filter) throws JsonProcessingException + { + Integer rs = null; + String processId = filter.getProcessId(); + HttpHeaders headers = new HttpHeaders(); + headers.add("FileID", processId); + + String response = restUtils.constructRequestAndCall(getFileDetailsEndpoint, "", headers, HttpMethod.GET, String.class); + if(response != null) + { + JsonNode jsonNode = objectMapper.readTree(response); + List processDetails = objectMapper.convertValue(jsonNode.get("dataList"), new TypeReference>() {}); + if(!CollectionUtils.isEmpty(processDetails)) + { + rs = processDetails.get(0).getTotalRecordCount(); + } + } + + return rs; + } + + /** + * transform + * @param reservationList + * @return + */ + private List transformData(List reservationList) + { + return reservationList.stream().map(r -> + { + BigDecimal roomPrice = r.getReservationTimeSliceList().stream() + .map(ts -> ts.getRoomPrice().getGrossAmount()) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + String roomGroupId = null; + String roomNumber= null; + if (r.getRoom() != null) + { + roomGroupId = r.getRoom().getRoomGroupId(); + roomNumber = r.getRoom().getRoomNumber(); + } + + String firstName = null; + String lastName = null; + String countryCode = null; + String email = null; + if (r.getGuest() != null) + { + firstName = r.getGuest().getFirstName(); + lastName = r.getGuest().getLastName(); + email = r.getGuest().getEmail(); + + if (r.getGuest().getAddress() != null) + { + countryCode = r.getGuest().getAddress().getCountryCode(); + } + } + + Integer children = r.getChildrenAgeList() != null ? + r.getChildrenAgeList().size() : + null; + + return TrainingDataInput.builder() + .createdDate(r.getCreated()) + .status(r.getStatus()) + .roomGroupId(roomGroupId) + .arrivalDate(r.getArrival()) + .departureDate(r.getDeparture()) + .roomPrice(roomPrice) + .lastName(lastName) + .firstName(firstName) + .totalNight(r.getReservationTimeSliceList().size()) + .channel(r.getChannelCode()) + .totalAmount(r.getTotalGrossAmount().getAmount()) + .countryCode(countryCode) + .adults(r.getAdults()) + .children(children) + .email(email) + .roomNumber(roomNumber) + .build(); + }).collect(Collectors.toList()); + } +} diff --git a/services/src/main/java/com/devrupt/services/service/reservation/ReservationService.java b/services/src/main/java/com/devrupt/services/service/reservation/ReservationService.java new file mode 100644 index 0000000..eb16b92 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/service/reservation/ReservationService.java @@ -0,0 +1,9 @@ +package com.devrupt.services.service.reservation; + +import com.devrupt.services.dto.reservation.ReservationFilter; +import com.devrupt.services.dto.reservation.ReservationListDto; + +public interface ReservationService +{ + ReservationListDto getReservationList(ReservationFilter filter); +} diff --git a/services/src/main/java/com/devrupt/services/service/reservation/ReservationServiceImpl.java b/services/src/main/java/com/devrupt/services/service/reservation/ReservationServiceImpl.java new file mode 100644 index 0000000..8dbafa6 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/service/reservation/ReservationServiceImpl.java @@ -0,0 +1,78 @@ +package com.devrupt.services.service.reservation; + +import com.devrupt.services.dto.reservation.ReservationFilter; +import com.devrupt.services.dto.reservation.ReservationListDto; +import com.devrupt.services.service.identity.IdentityService; +import com.devrupt.services.utils.RestUtils; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.stereotype.Service; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.web.util.UriComponentsBuilder; + +import java.time.LocalDateTime; +import java.time.OffsetDateTime; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.Calendar; + +@Service +public class ReservationServiceImpl implements ReservationService +{ + + @Value("${apaleo.api.reservation.endpoint}") + private String reservationEndpoint; + + @Value("${data.reservation.year-history.number}") + private Integer yearHistoryRange; + + @Autowired + private RestUtils restUtils; + + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private IdentityService tokenService; + + /** + * Get reservation data + * @param filter + * @return + */ + @Override + public ReservationListDto getReservationList(ReservationFilter filter) + { + ReservationListDto rs = new ReservationListDto(); + + OffsetDateTime to = OffsetDateTime.of(LocalDateTime.of(2021, 12, 31, 23, 59, 59), ZoneOffset.UTC).withNano(0); + OffsetDateTime from = OffsetDateTime.of(LocalDateTime.of(2021 - yearHistoryRange, 1, 1, 0, 0, 0), ZoneOffset.UTC).withNano(0); + + String dateTimeTo = to.format(DateTimeFormatter.ISO_DATE_TIME); + String dateTimeFrom = from.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME); + + String url = UriComponentsBuilder + .fromHttpUrl(reservationEndpoint) + .queryParam("expand", "timeSlices") + .queryParam("dateFilter", "Arrival") + .queryParam("from", dateTimeFrom) + .queryParam("to", dateTimeTo) + .queryParam("propertyIds", String.join(",", filter.getHotelIdList())) + .build().toUriString(); + + HttpHeaders headers = tokenService.getHeaderWithBearer(filter.getRefreshToken()); + + JsonNode jsonResponse = restUtils.constructRequestAndCall(url, new LinkedMultiValueMap<>(), headers, HttpMethod.GET, JsonNode.class); + if (jsonResponse != null && jsonResponse.get("reservations") != null) + { + rs = objectMapper.convertValue(jsonResponse, ReservationListDto.class); + } + + return rs; + } + +} diff --git a/services/src/main/java/com/devrupt/services/service/statistic/StatisticService.java b/services/src/main/java/com/devrupt/services/service/statistic/StatisticService.java new file mode 100644 index 0000000..ba58a59 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/service/statistic/StatisticService.java @@ -0,0 +1,16 @@ +package com.devrupt.services.service.statistic; + +import com.devrupt.services.dto.statistic.*; + +import java.io.IOException; +import java.util.List; + +public interface StatisticService +{ + StatisticDto getStatistic(StatisticFilter filter) throws IOException; + + List getIdentifiedGuestSegmentation(IdentifiedGuestSegmentationFilter filter) throws IOException; + + List getClvClassList(ClvClassFilter filter) throws IOException; + +} diff --git a/services/src/main/java/com/devrupt/services/service/statistic/StatisticServiceImpl.java b/services/src/main/java/com/devrupt/services/service/statistic/StatisticServiceImpl.java new file mode 100644 index 0000000..f571415 --- /dev/null +++ b/services/src/main/java/com/devrupt/services/service/statistic/StatisticServiceImpl.java @@ -0,0 +1,171 @@ +package com.devrupt.services.service.statistic; + +import com.devrupt.services.dto.integration.CustomerLifetimeValueDto; +import com.devrupt.services.dto.integration.CustomerLifetimeValueFilter; +import com.devrupt.services.dto.statistic.*; +import com.devrupt.services.service.integration.IntegrationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.*; +import java.util.stream.Collectors; + +@Service +public class StatisticServiceImpl implements StatisticService +{ + @Autowired + private IntegrationService integrationService; + + /** + * + * @param filter + * @return + * @throws IOException + */ + @Override + public StatisticDto getStatistic(StatisticFilter filter) throws IOException + { + StatisticDto rs = new StatisticDto(); + + List data = integrationService + .getCustomerLifetimeValueList(CustomerLifetimeValueFilter + .builder() + .processId(filter.getProcessId()) + .build()); + + Integer totalIdentifiedGuest = data.size(); + Integer totalPotentialVipGuest = Math.toIntExact(data.stream() + .filter(this::isPotentialVipGuest) + .count()); + Integer highValueGuest = Math.toIntExact(data.stream() + .filter(this::isHighValueGuest) + .count()); + + rs.setTotalIdentifiedGuest(totalIdentifiedGuest); + rs.setTotalPotentialVipGuest(totalPotentialVipGuest); + rs.setHighValueGuest(highValueGuest); + + return rs; + } + + /** + * + * @param filter + * @return + * @throws IOException + */ + @Override + public List getIdentifiedGuestSegmentation(IdentifiedGuestSegmentationFilter filter) throws IOException + { + List rs = new ArrayList<>(); + + List data = integrationService + .getCustomerLifetimeValueList(CustomerLifetimeValueFilter + .builder() + .processId(filter.getProcessId()) + .build()); + + Map> dataMap = data.stream().collect(Collectors.groupingBy(CustomerLifetimeValueDto::getType)); + IdentifiedGuestSegmentationDto identifiedGuestSegmentation; + for(Map.Entry> entry : dataMap.entrySet()) + { + identifiedGuestSegmentation = new IdentifiedGuestSegmentationDto(); + identifiedGuestSegmentation.setSegment(entry.getKey()); + identifiedGuestSegmentation.setValue((double) entry.getValue().size() / data.size()); + + rs.add(identifiedGuestSegmentation); + } + return rs; + } + + /** + * + * @param filter + * @return + * @throws IOException + */ + @Override + public List getClvClassList(ClvClassFilter filter) throws IOException + { + List rs = new ArrayList<>(); + + List data = integrationService + .getCustomerLifetimeValueList(CustomerLifetimeValueFilter + .builder() + .processId(filter.getProcessId()) + .build()); + Map> dataMap = data.stream() + .filter(customer -> customer.getLtvClass() != null) + .collect(Collectors.groupingBy(CustomerLifetimeValueDto::getLtvClass)); + + Map> sortedDataMap = new LinkedHashMap<>(); + dataMap.entrySet().stream() + .sorted(Map.Entry.comparingByKey()) + .forEachOrdered(x -> sortedDataMap.put(x.getKey(), x.getValue())); + + ClvClassDto clvClass; + List clvTypeList; + ClvTypeDto firstTimeGuestType; + ClvTypeDto returningGuestType; + for(Map.Entry> entry : sortedDataMap.entrySet()) + { + String name = getClassNameByValue(entry.getKey()); + clvClass = new ClvClassDto(); + clvTypeList = new ArrayList<>(); + firstTimeGuestType = new ClvTypeDto(IntegrationService.FIRST_TIME_GUEST, 0); + returningGuestType = new ClvTypeDto(IntegrationService.RETURNING_GUEST, 0); + + clvClass.setName(name); + + for(CustomerLifetimeValueDto customer : entry.getValue()) + { + if (customer.getType().equals(IntegrationService.FIRST_TIME_GUEST)) + { + firstTimeGuestType.setValue(firstTimeGuestType.getValue() + 1); + } + else if (customer.getType().equals(IntegrationService.RETURNING_GUEST)) + { + returningGuestType.setValue(returningGuestType.getValue() + 1); + } + } + + clvTypeList.add(firstTimeGuestType); + clvTypeList.add(returningGuestType); + clvClass.setTypeList(clvTypeList); + rs.add(clvClass); + } + return rs; + } + + private boolean isPotentialVipGuest(CustomerLifetimeValueDto input) + { + return input.getLtvClass().equals(IntegrationService.CLASS_HIGH) && + input.getType().equalsIgnoreCase(IntegrationService.FIRST_TIME_GUEST); + } + + private boolean isHighValueGuest(CustomerLifetimeValueDto input) + { + return input.getLtvClass().equals(IntegrationService.CLASS_HIGH); + } + + private String getClassNameByValue(Double classValue) + { + if (classValue.compareTo(IntegrationService.CLASS_HIGH) == 0) + { + return "High"; + } + else if (classValue.compareTo(IntegrationService.CLASS_MID) == 0) + { + return "Medium"; + } + else if (classValue.compareTo(IntegrationService.CLASS_LOW) == 0) + { + return "Low"; + } + else + { + return null; + } + } +} diff --git a/services/src/main/java/com/devrupt/services/utils/RestUtils.java b/services/src/main/java/com/devrupt/services/utils/RestUtils.java new file mode 100644 index 0000000..f0f2d4c --- /dev/null +++ b/services/src/main/java/com/devrupt/services/utils/RestUtils.java @@ -0,0 +1,56 @@ +package com.devrupt.services.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; + +@Component +public class RestUtils +{ + @Autowired + private RestTemplate restTemplate; + + final Logger logger = LoggerFactory.getLogger(RestUtils.class); + + /** + * @param body + * @param headers + * @param responseModel + * @param + * @return + */ + public T constructRequestAndCall(String url, Object body, HttpHeaders headers, + HttpMethod method, Class responseModel) + { + HttpEntity request = new HttpEntity<>(body, headers); + ResponseEntity response = call(url, method, request, responseModel); + return response.getBody(); + + } + + /** + * @param url + * @param method + * @param requestPayload + * @param responseModel + * @param + * @return + */ + public ResponseEntity call(String url, HttpMethod method, HttpEntity requestPayload, Class responseModel) + { + logger.info("API request {} url: {}", method, url); + logger.info("API payload: {}", requestPayload); + + ResponseEntity response = restTemplate.exchange(url, method, requestPayload, responseModel); + logger.info("API response: {}", response); + logger.info("------------------------------------------------------------------------------------------------"); + + return response; + } +} diff --git a/services/src/main/resources/application.properties b/services/src/main/resources/application.properties new file mode 100644 index 0000000..05c098b --- /dev/null +++ b/services/src/main/resources/application.properties @@ -0,0 +1,14 @@ +server.port=8000 +mock-data=false +data.reservation.year-history.number=3 +apaleo.api.token.endpoint=https://identity.apaleo.com/connect/token +apaleo.api.reservation.endpoint=https://api.apaleo.com/booking/v1/reservations +apaleo.client.id=GRIY-AC-DSRLTE +apaleo.client.secret=nYFujCeX2GFKjRGbqL3M9lHDA1Jp6J +apaleo.api.token.scope=openid,profile,offline_access,reservations.read,setup.read + +ai.api.host=http://dataspire-lite-ai:5000 +ai.api.send-input-data.endpoint=${ai.api.host}/send-input-data +ai.api.check-process-status.endpoint=${ai.api.host}/check-process-status +ai.api.get-prediction-file.endpoint=${ai.api.host}/get-prediction-file +ai.api.get-file-details.endpoint=${ai.api.host}/get-file-details diff --git a/services/src/main/resources/graphqls/_firstInit.graphql b/services/src/main/resources/graphqls/_firstInit.graphql new file mode 100644 index 0000000..782a098 --- /dev/null +++ b/services/src/main/resources/graphqls/_firstInit.graphql @@ -0,0 +1,14 @@ +directive @deprecated( + reason: String = "Next version will remove" +) on FIELD_DEFINITION | INPUT_OBJECT | INPUT_FIELD_DEFINITION | ENUM_VALUE | ARGUMENT_DEFINITION + +schema { + query: Query + mutation : Mutation +} +type Query{ + test : String +} + +type Mutation { +} diff --git a/services/src/main/resources/graphqls/identity/identity-enum.graphql b/services/src/main/resources/graphqls/identity/identity-enum.graphql new file mode 100644 index 0000000..e69de29 diff --git a/services/src/main/resources/graphqls/identity/identity-input.graphql b/services/src/main/resources/graphqls/identity/identity-input.graphql new file mode 100644 index 0000000..c3acfd6 --- /dev/null +++ b/services/src/main/resources/graphqls/identity/identity-input.graphql @@ -0,0 +1,6 @@ +input TokenRequest +{ + code : String + redirectUrl : String + refreshToken : String +} \ No newline at end of file diff --git a/services/src/main/resources/graphqls/identity/identity-query.graphql b/services/src/main/resources/graphqls/identity/identity-query.graphql new file mode 100644 index 0000000..b1d1190 --- /dev/null +++ b/services/src/main/resources/graphqls/identity/identity-query.graphql @@ -0,0 +1,11 @@ +extend type Query +{ + getApaleoClient : ApaleoClient +} + + +extend type Mutation +{ + exchangeToken(input: TokenRequest) : TokenResponse + renewToken(input: TokenRequest) : TokenResponse +} diff --git a/services/src/main/resources/graphqls/identity/identity-type.graphql b/services/src/main/resources/graphqls/identity/identity-type.graphql new file mode 100644 index 0000000..95e79f2 --- /dev/null +++ b/services/src/main/resources/graphqls/identity/identity-type.graphql @@ -0,0 +1,14 @@ +type TokenResponse +{ + idToken : String + accessToken : String + expiresIn : Long + tokenType : String + refreshToken : String +} + +type ApaleoClient +{ + allowScopeList : [String] + clientId : String +} diff --git a/services/src/main/resources/graphqls/integration/integration-enum.graphql b/services/src/main/resources/graphqls/integration/integration-enum.graphql new file mode 100644 index 0000000..4d87efc --- /dev/null +++ b/services/src/main/resources/graphqls/integration/integration-enum.graphql @@ -0,0 +1,7 @@ +enum ProcessStatusEnum +{ + SUCCESS, + READY, + PROCESSING, + ERROR, +} diff --git a/services/src/main/resources/graphqls/integration/integration-input.graphql b/services/src/main/resources/graphqls/integration/integration-input.graphql new file mode 100644 index 0000000..66c72bb --- /dev/null +++ b/services/src/main/resources/graphqls/integration/integration-input.graphql @@ -0,0 +1,21 @@ +input ProcessStatusFilter +{ + processId : String! +} + +input CustomerLifetimeValueFilter +{ + processId : String! +} + +input ProcessInput +{ + processId : String + hotelIdList : [String]! + refreshToken : String! +} + +input ProcessDetailsFilter +{ + processId : String! +} diff --git a/services/src/main/resources/graphqls/integration/integration-query.graphql b/services/src/main/resources/graphqls/integration/integration-query.graphql new file mode 100644 index 0000000..ca4eed7 --- /dev/null +++ b/services/src/main/resources/graphqls/integration/integration-query.graphql @@ -0,0 +1,11 @@ +extend type Query +{ + getProcessState(filter: ProcessStatusFilter) : Process + getCustomerLifetimeValueList(filter: CustomerLifetimeValueFilter) : [CustomerLifetimeValue] + getTotalRecordCount(filter: ProcessDetailsFilter) : Int +} + +extend type Mutation +{ + startProcess(input: ProcessInput) : Process +} diff --git a/services/src/main/resources/graphqls/integration/integration-type.graphql b/services/src/main/resources/graphqls/integration/integration-type.graphql new file mode 100644 index 0000000..f533e40 --- /dev/null +++ b/services/src/main/resources/graphqls/integration/integration-type.graphql @@ -0,0 +1,20 @@ +type CustomerLifetimeValue +{ + firstName : String + lastName : String + email : String + guestId : String + ltvClass : Float + low : Float + mid : Float + high : Float + type : String +} + +type Process +{ + id : String + status : ProcessStatusEnum + message : String + recordCount : Int +} diff --git a/services/src/main/resources/graphqls/reservation/reservation-enum.graphql b/services/src/main/resources/graphqls/reservation/reservation-enum.graphql new file mode 100644 index 0000000..e69de29 diff --git a/services/src/main/resources/graphqls/reservation/reservation-input.graphql b/services/src/main/resources/graphqls/reservation/reservation-input.graphql new file mode 100644 index 0000000..1846efe --- /dev/null +++ b/services/src/main/resources/graphqls/reservation/reservation-input.graphql @@ -0,0 +1,8 @@ +input ReservationFilter +{ + hotelIdList : [String]! + refreshToken : String! + pageNumber : Int + pageSize : Int + +} diff --git a/services/src/main/resources/graphqls/reservation/reservation-query.graphql b/services/src/main/resources/graphqls/reservation/reservation-query.graphql new file mode 100644 index 0000000..497494a --- /dev/null +++ b/services/src/main/resources/graphqls/reservation/reservation-query.graphql @@ -0,0 +1,4 @@ +extend type Query +{ + getReservationList(filter: ReservationFilter) : ReservationList +} diff --git a/services/src/main/resources/graphqls/reservation/reservation-type.graphql b/services/src/main/resources/graphqls/reservation/reservation-type.graphql new file mode 100644 index 0000000..86713e9 --- /dev/null +++ b/services/src/main/resources/graphqls/reservation/reservation-type.graphql @@ -0,0 +1,60 @@ +type ReservationList +{ + data : [Reservation] + count : Int +} + +type Reservation +{ + id : String + bookingId : String + status : String + arrival : String + departure : String + created : String + adults : String + chilrenAgeList : [Int] + channelCode : String + reservationTimeSliceList : [ReservationTimeSlice] + room : ReservationRoom + guest : ReservationGuest + totalGrossAmount : Monetary +} + +type ReservationTimeSlice +{ + from : String + to : String + roomPrice : Monetary +} + +type ReservationRoom +{ + id : String + roomNumber : String + description : String + roomGroupId : String +} + +type ReservationGuest +{ + firstName : String + lastName : String + email : String + address : Address +} + +type Address +{ + countryCode : String +} + +type Monetary +{ + grossAmount : BigDecimal + netAmount : BigDecimal + vatType : String + vatPercent : Float + currency : String +} + diff --git a/services/src/main/resources/graphqls/statistic/statistic-enum.graphql b/services/src/main/resources/graphqls/statistic/statistic-enum.graphql new file mode 100644 index 0000000..e69de29 diff --git a/services/src/main/resources/graphqls/statistic/statistic-input.graphql b/services/src/main/resources/graphqls/statistic/statistic-input.graphql new file mode 100644 index 0000000..ff96b37 --- /dev/null +++ b/services/src/main/resources/graphqls/statistic/statistic-input.graphql @@ -0,0 +1,15 @@ + +input StatisticFilter +{ + processId : String! +} + +input IdentifiedGuestSegmentationFilter +{ + processId : String! +} + +input ClvClassFilter +{ + processId : String! +} diff --git a/services/src/main/resources/graphqls/statistic/statistic-query.graphql b/services/src/main/resources/graphqls/statistic/statistic-query.graphql new file mode 100644 index 0000000..8ef3a0a --- /dev/null +++ b/services/src/main/resources/graphqls/statistic/statistic-query.graphql @@ -0,0 +1,6 @@ +extend type Query +{ + getStatistic(filter: StatisticFilter) : Statistic + getIdentifiedGuestSegmentation(filter: IdentifiedGuestSegmentationFilter) : [IdentifiedGuestSegmentation] + getClvClassList(filter: ClvClassFilter) : [ClvClass] +} diff --git a/services/src/main/resources/graphqls/statistic/statistic-type.graphql b/services/src/main/resources/graphqls/statistic/statistic-type.graphql new file mode 100644 index 0000000..b2d370e --- /dev/null +++ b/services/src/main/resources/graphqls/statistic/statistic-type.graphql @@ -0,0 +1,26 @@ + +type Statistic +{ + totalIdentifiedGuest : Int + totalPotentialVipGuest : Int + highValueGuest : Int +} + +type IdentifiedGuestSegmentation +{ + segment : String + value : Float +} + +type ClvType +{ + name : String + value : Int +} + +type ClvClass +{ + name : String + typeList : [ClvType] +} + diff --git a/services/src/main/resources/template/data_input_schema.json b/services/src/main/resources/template/data_input_schema.json new file mode 100644 index 0000000..983b772 --- /dev/null +++ b/services/src/main/resources/template/data_input_schema.json @@ -0,0 +1,20 @@ +[ + { + "CreatedDate": "2016-01-01 07:47:00", + "Status": "O", + "RoomGroupID": "OQNN", + "ArrivalDate": "2016-01-01 00:00:00", + "DepartureDate": "2016-01-03 06:34:00", + "RoomPrice": 235.4, + "LastName": "Doe", + "FirstName": "John", + "Nights": 2, + "Channel": "Booking.Com", + "TotalPayment": 435.49, + "Country": "TH", + "Adults": 2, + "Children": 0, + "Email": null, + "RoomNo": 238.0 + } +] diff --git a/services/src/main/resources/template/data_output_schema.json b/services/src/main/resources/template/data_output_schema.json new file mode 100644 index 0000000..28095cc --- /dev/null +++ b/services/src/main/resources/template/data_output_schema.json @@ -0,0 +1,19 @@ +{ + "code": 200, + "status": "SUCCESS", + "message": "Successfully Run.", + "dataList": [ + { + "LastName": "Doe", + "FirstName": "John", + "Email": null, + "GuestID": 0, + "LTV_Class": -1.0, + "CLV_Low_Prob": null, + "CLV_Mid_Prob": null, + "CLV_High_Prob": null, + "Guest_Type": "Ignore 1st-Time Guest" + } + ], + "errorlog": "" +} diff --git a/services/src/main/resources/template/query.example b/services/src/main/resources/template/query.example new file mode 100644 index 0000000..2092697 --- /dev/null +++ b/services/src/main/resources/template/query.example @@ -0,0 +1,159 @@ +mutation exchangeToken +{ + exchangeToken(input:{ + code:"" + redirectUrl:"http://localhost:4200/callback" + }){ + idToken + accessToken + expiresIn + tokenType + refreshToken + } +} + + +query getReservationList +{ + getReservationList(filter:{ + hotelIdList:[] + refreshToken:"" + }) { + count + data + { + id + bookingId + status + arrival + departure + created + adults + chilrenAgeList + channelCode + reservationTimeSliceList + { + from + to + roomPrice + { + grossAmount + netAmount + vatType + vatPercent + currency + } + } + room + { + id + roomNumber + description + roomGroupId + } + guest + { + firstName + lastName + email + address + { + countryCode + } + } + totalGrossAmount + { + grossAmount + netAmount + vatType + vatPercent + currency + } + } + + } +} + + +query getCustomerLifetimeValueList +{ + getCustomerLifetimeValueList(filter:{ + processId:"123" + }) { + email + low + mid + high + type + } +} + + +query getProcessState +{ + getProcessState(filter:{ + processId:"123" + }) { + id + status + message + } +} + +mutation startProcess +{ + startProcess(input:{ + processId:"123" + hotelId:"123" + refreshToken:"123" + }) { + id + status + message + } +} + +query getApaleoClient +{ + getApaleoClient + { + allowScopeList + clientId + } +} + +query getStatistic +{ + getStatistic(filter:{ + processId:"1" + }){ + totalIdentifiedGuest + totalPotentialVipGuest + highValueGuest + } +} + + +query getIdentifiedGuestSegmentation +{ + getIdentifiedGuestSegmentation(filter:{ + processId:"1" + }){ + segment + value + } +} + +query getClvTypeList +{ + getClvTypeList(filter:{ + processId:"1" + }){ + name + classList + { + name + value + } + } +} diff --git a/services/src/test/java/com/devrupt/services/ServicesApplicationTests.java b/services/src/test/java/com/devrupt/services/ServicesApplicationTests.java new file mode 100644 index 0000000..fed5b36 --- /dev/null +++ b/services/src/test/java/com/devrupt/services/ServicesApplicationTests.java @@ -0,0 +1,13 @@ +package com.devrupt.services; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class ServicesApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/structure.png b/structure.png new file mode 100644 index 0000000000000000000000000000000000000000..8b6308a49a1a2e9806095b9a47d23ee9a18d95f7 GIT binary patch literal 25134 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 FO#mLl^)>(i literal 0 HcmV?d00001