From d432863707d96c2874bb41e4aad7efc06158d20f Mon Sep 17 00:00:00 2001 From: Diego Freitas Date: Wed, 11 Jun 2025 20:28:21 -0300 Subject: [PATCH] novo repositorio --- .gitignore | 13 + api/connector.js | 57 + api/controllers/authController.js | 64 + api/controllers/booksController.js | 48 + api/controllers/coursesController.js | 82 + api/controllers/usersController.js | 46 + api/package-lock.json | 2562 ++ api/package.json | 20 + api/server.js | 25 + api/utils/fileUtils.js | 135 + api/utils/formUtils.js | 19 + backoffice/.dockerignore | 8 + backoffice/.editorconfig | 13 + backoffice/.gitignore | 46 + backoffice/.markdownlint.json | 4 + backoffice/.prettierrc.json | 19 + backoffice/.pug-lintrc.json | 6 + backoffice/CHANGELOG.md | 49 + backoffice/Dockerfile | 17 + backoffice/LICENSE | 21 + backoffice/README.md | 100 + backoffice/angular.json | 137 + backoffice/browserslist | 5 + backoffice/e2e/protractor.conf.js | 30 + backoffice/e2e/src/app.e2e-spec.ts | 29 + backoffice/e2e/src/app.po.ts | 11 + backoffice/e2e/tsconfig.json | 9 + backoffice/karma.conf.js | 32 + backoffice/nginx.conf | 52 + backoffice/package-lock.json | 37591 ++++++++++++++++ backoffice/package.json | 86 + backoffice/scripts/build-pug.js | 17 + backoffice/scripts/docker/docker-build.js | 7 + backoffice/scripts/docker/docker-run.js | 15 + backoffice/scripts/docker/start-nginx.sh | 3 + backoffice/scripts/pug-watch.js | 45 + backoffice/scripts/render-pug.js | 25 + backoffice/scripts/start.js | 22 + backoffice/scripts/version.js | 15 + backoffice/src/app/app-routing.module.ts | 92 + backoffice/src/app/app.component.html | 1 + backoffice/src/app/app.component.pug | 1 + backoffice/src/app/app.component.scss | 0 backoffice/src/app/app.component.spec.ts | 25 + backoffice/src/app/app.component.ts | 30 + backoffice/src/app/app.module.ts | 28 + backoffice/src/assets/.gitkeep | 0 backoffice/src/assets/i18n/en.json | 19 + backoffice/src/assets/i18n/pt.json | 19 + .../src/assets/img/error-404-monochrome.svg | 1 + .../src/assets/img/icons/ContentIcon.svg | 3 + backoffice/src/assets/img/icons/English.svg | 17 + .../src/assets/img/icons/GameIcon(1).svg | 10 + backoffice/src/assets/img/icons/GameIcon.svg | 10 + backoffice/src/assets/img/icons/Logout.svg | 17 + .../src/assets/img/icons/PlayIcon(1).svg | 10 + backoffice/src/assets/img/icons/PlayIcon.svg | 3 + .../src/assets/img/icons/Portuguese.svg | 15 + .../img/icons/__MACOSX/._Content Icon.svg | Bin 0 -> 293 bytes .../assets/img/icons/__MACOSX/._English.svg | Bin 0 -> 293 bytes .../img/icons/__MACOSX/._Game Icon (1).svg | Bin 0 -> 293 bytes .../assets/img/icons/__MACOSX/._Game Icon.svg | Bin 0 -> 293 bytes .../img/icons/__MACOSX/._Play Icon (1).svg | Bin 0 -> 293 bytes .../assets/img/icons/__MACOSX/._Play Icon.svg | Bin 0 -> 293 bytes .../img/icons/__MACOSX/._Portuguese.svg | Bin 0 -> 293 bytes .../img/icons/__MACOSX/._fa6-solid_camera.svg | Bin 0 -> 293 bytes .../src/assets/img/icons/fa6-solid_camera.svg | 3 + backoffice/src/assets/img/logo.png | Bin 0 -> 23650 bytes backoffice/src/assets/version | 2 + .../src/environments/environment.prod.ts | 29 + backoffice/src/environments/environment.ts | 42 + backoffice/src/favicon.ico | Bin 0 -> 15406 bytes backoffice/src/favicon.png | Bin 0 -> 1215 bytes backoffice/src/index.html | 25 + backoffice/src/main.ts | 13 + .../modules/app-common/app-common.module.ts | 31 + .../card-view-details.component.html | 7 + .../card-view-details.component.pug | 9 + .../card-view-details.component.scss | 1 + .../card-view-details.component.spec.ts | 53 + .../card-view-details.component.ts | 25 + .../components/card/card.component.html | 1 + .../components/card/card.component.pug | 6 + .../components/card/card.component.scss | 1 + .../components/card/card.component.spec.ts | 50 + .../components/card/card.component.ts | 24 + .../modules/app-common/components/index.ts | 7 + .../modules/app-common/containers/index.ts | 1 + .../guards/app-common.guard.spec.ts | 23 + .../app-common/guards/app-common.guard.ts | 10 + .../src/modules/app-common/guards/index.ts | 5 + .../app-common/models/app-common.model.ts | 1 + .../src/modules/app-common/models/index.ts | 1 + .../services/app-common.service.spec.ts | 22 + .../app-common/services/app-common.service.ts | 12 + .../src/modules/app-common/services/index.ts | 5 + .../src/modules/auth/auth-routing.module.ts | 52 + backoffice/src/modules/auth/auth.module.ts | 36 + .../src/modules/auth/components/index.ts | 1 + .../forgot-password.component.html | 21 + .../forgot-password.component.pug | 19 + .../forgot-password.component.scss | 1 + .../forgot-password.component.spec.ts | 53 + .../forgot-password.component.ts | 12 + .../src/modules/auth/containers/index.ts | 9 + .../containers/login/login.component.html | 24 + .../auth/containers/login/login.component.pug | 25 + .../containers/login/login.component.scss | 1 + .../containers/login/login.component.spec.ts | 50 + .../auth/containers/login/login.component.ts | 12 + .../register/register.component.html | 36 + .../register/register.component.pug | 35 + .../register/register.component.scss | 1 + .../register/register.component.spec.ts | 50 + .../containers/register/register.component.ts | 12 + .../modules/auth/guards/auth.guard.spec.ts | 23 + .../src/modules/auth/guards/auth.guard.ts | 10 + backoffice/src/modules/auth/guards/index.ts | 5 + .../src/modules/auth/models/auth.model.ts | 6 + backoffice/src/modules/auth/models/index.ts | 1 + .../auth/services/auth.service.spec.ts | 22 + .../src/modules/auth/services/auth.service.ts | 11 + backoffice/src/modules/auth/services/index.ts | 7 + .../auth/services/user.service.spec.ts | 26 + .../src/modules/auth/services/user.service.ts | 26 + .../modules/charts/charts-routing.module.ts | 41 + .../src/modules/charts/charts.module.ts | 36 + .../charts-area/charts-area.component.html | 1 + .../charts-area/charts-area.component.pug | 1 + .../charts-area/charts-area.component.scss | 7 + .../charts-area/charts-area.component.spec.ts | 53 + .../charts-area/charts-area.component.ts | 108 + .../charts-bar/charts-bar.component.html | 1 + .../charts-bar/charts-bar.component.pug | 1 + .../charts-bar/charts-bar.component.scss | 7 + .../charts-bar/charts-bar.component.spec.ts | 53 + .../charts-bar/charts-bar.component.ts | 72 + .../charts-pie/charts-pie.component.html | 1 + .../charts-pie/charts-pie.component.pug | 1 + .../charts-pie/charts-pie.component.scss | 7 + .../charts-pie/charts-pie.component.spec.ts | 53 + .../charts-pie/charts-pie.component.ts | 38 + .../src/modules/charts/components/index.ts | 9 + .../containers/charts/charts.component.html | 26 + .../containers/charts/charts.component.pug | 35 + .../containers/charts/charts.component.scss | 1 + .../charts/charts.component.spec.ts | 50 + .../containers/charts/charts.component.ts | 12 + .../src/modules/charts/containers/index.ts | 5 + .../charts/guards/charts.guard.spec.ts | 23 + .../src/modules/charts/guards/charts.guard.ts | 10 + backoffice/src/modules/charts/guards/index.ts | 5 + .../src/modules/charts/models/charts.model.ts | 1 + backoffice/src/modules/charts/models/index.ts | 1 + .../charts/services/charts.service.spec.ts | 22 + .../modules/charts/services/charts.service.ts | 11 + .../src/modules/charts/services/index.ts | 5 + .../dashboard-cards.component.html | 14 + .../dashboard-cards.component.pug | 28 + .../dashboard-cards.component.scss | 1 + .../dashboard-cards.component.spec.ts | 53 + .../dashboard-cards.component.ts | 12 + .../dashboard-charts.component.html | 14 + .../dashboard-charts.component.pug | 17 + .../dashboard-charts.component.scss | 1 + .../dashboard-charts.component.spec.ts | 53 + .../dashboard-charts.component.ts | 12 + .../dashboard-tables.component.html | 4 + .../dashboard-tables.component.pug | 6 + .../dashboard-tables.component.scss | 1 + .../dashboard-tables.component.spec.ts | 53 + .../dashboard-tables.component.ts | 12 + .../src/modules/dashboard/components/index.ts | 13 + .../dashboard/dashboard.component.html | 1 + .../dashboard/dashboard.component.pug | 5 + .../dashboard/dashboard.component.scss | 1 + .../dashboard/dashboard.component.spec.ts | 50 + .../dashboard/dashboard.component.ts | 12 + .../src/modules/dashboard/containers/index.ts | 9 + .../containers/light/light.component.html | 1 + .../containers/light/light.component.pug | 5 + .../containers/light/light.component.scss | 1 + .../containers/light/light.component.spec.ts | 50 + .../containers/light/light.component.ts | 12 + .../containers/static/static.component.html | 8 + .../containers/static/static.component.pug | 12 + .../containers/static/static.component.scss | 1 + .../static/static.component.spec.ts | 50 + .../containers/static/static.component.ts | 12 + .../dashboard/dashboard-routing.module.ts | 74 + .../src/modules/dashboard/dashboard.module.ts | 40 + .../dashboard/guards/dashboard.guard.spec.ts | 23 + .../dashboard/guards/dashboard.guard.ts | 10 + .../src/modules/dashboard/guards/index.ts | 5 + .../dashboard/models/dashboard.model.ts | 1 + .../src/modules/dashboard/models/index.ts | 1 + .../services/dashboard.service.spec.ts | 22 + .../dashboard/services/dashboard.service.ts | 11 + .../src/modules/dashboard/services/index.ts | 5 + .../src/modules/error/components/index.ts | 1 + .../error-401/error-401.component.html | 14 + .../error-401/error-401.component.pug | 11 + .../error-401/error-401.component.scss | 1 + .../error-401/error-401.component.spec.ts | 50 + .../error-401/error-401.component.ts | 12 + .../error-404/error-404.component.html | 13 + .../error-404/error-404.component.pug | 10 + .../error-404/error-404.component.scss | 1 + .../error-404/error-404.component.spec.ts | 50 + .../error-404/error-404.component.ts | 12 + .../error-500/error-500.component.html | 13 + .../error-500/error-500.component.pug | 10 + .../error-500/error-500.component.scss | 1 + .../error-500/error-500.component.spec.ts | 50 + .../error-500/error-500.component.ts | 12 + .../src/modules/error/containers/index.ts | 9 + .../src/modules/error/error-routing.module.ts | 58 + backoffice/src/modules/error/error.module.ts | 36 + .../modules/error/guards/error.guard.spec.ts | 23 + .../src/modules/error/guards/error.guard.ts | 10 + backoffice/src/modules/error/guards/index.ts | 5 + .../src/modules/error/models/error.model.ts | 1 + backoffice/src/modules/error/models/index.ts | 1 + .../error/services/error.service.spec.ts | 22 + .../modules/error/services/error.service.ts | 11 + .../src/modules/error/services/index.ts | 5 + .../icons/icons.font-awesome-brands.ts | 17 + .../icons/icons.font-awesome-regular.ts | 7 + .../modules/icons/icons.font-awesome-solid.ts | 37 + backoffice/src/modules/icons/icons.module.ts | 20 + .../breadcrumbs/breadcrumbs.component.html | 3 + .../breadcrumbs/breadcrumbs.component.pug | 10 + .../breadcrumbs/breadcrumbs.component.scss | 1 + .../breadcrumbs/breadcrumbs.component.spec.ts | 59 + .../breadcrumbs/breadcrumbs.component.ts | 28 + .../dashboard-head.component.html | 2 + .../dashboard-head.component.pug | 2 + .../dashboard-head.component.scss | 1 + .../dashboard-head.component.spec.ts | 53 + .../dashboard-head.component.ts | 15 + .../modules/navigation/components/index.ts | 16 + .../side-nav-item.component.html | 6 + .../side-nav-item/side-nav-item.component.pug | 18 + .../side-nav-item.component.scss | 1 + .../side-nav-item.component.spec.ts | 53 + .../side-nav-item/side-nav-item.component.ts | 19 + .../top-nav-user/top-nav-user.component.html | 15 + .../top-nav-user/top-nav-user.component.pug | 30 + .../top-nav-user/top-nav-user.component.scss | 5 + .../top-nav-user.component.spec.ts | 53 + .../top-nav-user/top-nav-user.component.ts | 13 + .../containers/footer/footer.component.html | 8 + .../containers/footer/footer.component.pug | 8 + .../containers/footer/footer.component.scss | 1 + .../footer/footer.component.spec.ts | 50 + .../containers/footer/footer.component.ts | 12 + .../modules/navigation/containers/index.ts | 9 + .../side-nav/side-nav.component.html | 14 + .../side-nav/side-nav.component.pug | 13 + .../side-nav/side-nav.component.scss | 1 + .../side-nav/side-nav.component.spec.ts | 62 + .../containers/side-nav/side-nav.component.ts | 34 + .../containers/top-nav/top-nav.component.html | 16 + .../containers/top-nav/top-nav.component.pug | 23 + .../containers/top-nav/top-nav.component.scss | 1 + .../top-nav/top-nav.component.spec.ts | 56 + .../containers/top-nav/top-nav.component.ts | 20 + .../src/modules/navigation/data/index.ts | 1 + .../modules/navigation/data/side-nav.data.ts | 135 + .../src/modules/navigation/guards/index.ts | 5 + .../guards/navigation.guard.spec.ts | 23 + .../navigation/guards/navigation.guard.ts | 10 + .../src/modules/navigation/layouts/index.ts | 9 + .../layout-auth/layout-auth.component.html | 6 + .../layout-auth/layout-auth.component.pug | 6 + .../layout-auth/layout-auth.component.scss | 1 + .../layout-auth/layout-auth.component.spec.ts | 53 + .../layout-auth/layout-auth.component.ts | 12 + .../layout-dashboard.component.html | 11 + .../layout-dashboard.component.pug | 14 + .../layout-dashboard.component.scss | 1 + .../layout-dashboard.component.spec.ts | 62 + .../layout-dashboard.component.ts | 47 + .../layout-error/layout-error.component.html | 6 + .../layout-error/layout-error.component.pug | 6 + .../layout-error/layout-error.component.scss | 1 + .../layout-error.component.spec.ts | 53 + .../layout-error/layout-error.component.ts | 12 + .../src/modules/navigation/models/index.ts | 1 + .../navigation/models/navigation.model.ts | 27 + .../modules/navigation/navigation.module.ts | 38 + .../src/modules/navigation/services/index.ts | 7 + .../services/navigation.service.spec.ts | 28 + .../navigation/services/navigation.service.ts | 46 + .../services/side-nav.service.spec.ts | 20 + .../navigation/services/side-nav.service.ts | 28 + .../src/modules/tables/components/index.ts | 7 + .../ng-bootstrap-table.component.html | 29 + .../ng-bootstrap-table.component.pug | 80 + .../ng-bootstrap-table.component.scss | 5 + .../ng-bootstrap-table.component.spec.ts | 54 + .../ng-bootstrap-table.component.ts | 49 + .../sort-icon/sort-icon.component.html | 1 + .../sort-icon/sort-icon.component.pug | 4 + .../sort-icon/sort-icon.component.scss | 9 + .../sort-icon/sort-icon.component.spec.ts | 50 + .../sort-icon/sort-icon.component.ts | 14 + .../src/modules/tables/containers/index.ts | 5 + .../containers/tables/tables.component.html | 8 + .../containers/tables/tables.component.pug | 12 + .../containers/tables/tables.component.scss | 1 + .../tables/tables.component.spec.ts | 50 + .../containers/tables/tables.component.ts | 12 + .../src/modules/tables/data/countries.ts | 95 + .../src/modules/tables/directives/index.ts | 5 + .../tables/directives/sortable.directive.ts | 29 + backoffice/src/modules/tables/guards/index.ts | 5 + .../tables/guards/tables.guard.spec.ts | 23 + .../src/modules/tables/guards/tables.guard.ts | 10 + backoffice/src/modules/tables/models/index.ts | 1 + .../src/modules/tables/models/tables.model.ts | 8 + .../tables/services/country.service.spec.ts | 23 + .../tables/services/country.service.ts | 130 + .../src/modules/tables/services/index.ts | 7 + .../tables/services/tables.service.spec.ts | 22 + .../modules/tables/services/tables.service.ts | 11 + .../modules/tables/tables-routing.module.ts | 41 + .../src/modules/tables/tables.module.ts | 48 + .../src/modules/utility/components/index.ts | 1 + .../src/modules/utility/containers/index.ts | 7 + .../containers/version/version.component.html | 1 + .../containers/version/version.component.pug | 1 + .../containers/version/version.component.scss | 1 + .../version/version.component.spec.ts | 57 + .../containers/version/version.component.ts | 16 + .../src/modules/utility/guards/index.ts | 5 + .../utility/guards/utility.guard.spec.ts | 27 + .../modules/utility/guards/utility.guard.ts | 12 + .../src/modules/utility/models/index.ts | 1 + .../modules/utility/models/utility.model.ts | 1 + .../src/modules/utility/services/index.ts | 7 + .../utility/services/utility.service.spec.ts | 38 + .../utility/services/utility.service.ts | 12 + .../modules/utility/utility-routing.module.ts | 27 + .../src/modules/utility/utility.module.ts | 36 + .../src/pages/auth/auth-routing.module.ts | 58 + backoffice/src/pages/auth/auth.module.ts | 37 + backoffice/src/pages/auth/components/index.ts | 1 + .../forgot-password.component.html | 21 + .../forgot-password.component.pug | 19 + .../forgot-password.component.scss | 1 + .../forgot-password.component.spec.ts | 53 + .../forgot-password.component.ts | 12 + backoffice/src/pages/auth/containers/index.ts | 11 + .../login-book/login-book.component.html | 56 + .../login-book/login-book.component.pug | 25 + .../login-book/login-book.component.scss | 96 + .../login-book/login-book.component.ts | 87 + .../containers/login/login.component.html | 38 + .../auth/containers/login/login.component.pug | 25 + .../containers/login/login.component.scss | 1 + .../auth/containers/login/login.component.ts | 44 + .../register/register.component.html | 36 + .../register/register.component.pug | 35 + .../register/register.component.scss | 1 + .../register/register.component.spec.ts | 50 + .../containers/register/register.component.ts | 12 + .../src/pages/auth/models/auth.model.ts | 13 + backoffice/src/pages/auth/models/index.ts | 1 + .../src/pages/auth/services/auth.service.ts | 42 + backoffice/src/pages/auth/services/index.ts | 5 + .../src/pages/books/books-routing.module.ts | 49 + backoffice/src/pages/books/books.module.ts | 35 + .../src/pages/books/components/index.ts | 1 + .../src/pages/books/containers/index.ts | 7 + .../containers/input/input.component.html | 26 + .../containers/input/input.component.pug | 35 + .../containers/input/input.component.scss | 1 + .../books/containers/input/input.component.ts | 95 + .../books/containers/list/list.component.html | 10 + .../books/containers/list/list.component.pug | 25 + .../books/containers/list/list.component.scss | 1 + .../books/containers/list/list.component.ts | 85 + .../src/pages/books/models/books.model.ts | 39 + backoffice/src/pages/books/models/index.ts | 1 + .../src/pages/books/services/books.service.ts | 117 + backoffice/src/pages/books/services/index.ts | 5 + .../pages/classes/classes-routing.module.ts | 41 + .../src/pages/classes/classes.module.ts | 36 + .../src/pages/classes/components/index.ts | 1 + .../src/pages/classes/containers/index.ts | 5 + .../containers/input/input.component.html | 140 + .../containers/input/input.component.pug | 35 + .../containers/input/input.component.scss | 39 + .../containers/input/input.component.ts | 302 + .../classes/models/classcontent.model.ts | 48 + .../src/pages/classes/models/classes.model.ts | 22 + backoffice/src/pages/classes/models/index.ts | 2 + .../classes/services/classcontent.service.ts | 147 + .../pages/classes/services/classes.service.ts | 113 + .../src/pages/classes/services/index.ts | 7 + .../src/pages/courses/components/index.ts | 1 + .../src/pages/courses/containers/index.ts | 7 + .../containers/input/input.component.html | 33 + .../containers/input/input.component.pug | 35 + .../containers/input/input.component.scss | 1 + .../containers/input/input.component.ts | 101 + .../containers/list/list.component.html | 9 + .../containers/list/list.component.pug | 25 + .../containers/list/list.component.scss | 1 + .../courses/containers/list/list.component.ts | 39 + .../pages/courses/courses-routing.module.ts | 49 + .../src/pages/courses/courses.module.ts | 36 + .../src/pages/courses/models/courses.model.ts | 14 + backoffice/src/pages/courses/models/index.ts | 1 + .../pages/courses/services/courses.service.ts | 113 + .../src/pages/courses/services/index.ts | 5 + .../dashboard-cards.component.html | 14 + .../dashboard-cards.component.pug | 28 + .../dashboard-cards.component.scss | 1 + .../dashboard-cards.component.spec.ts | 53 + .../dashboard-cards.component.ts | 12 + .../dashboard-charts.component.html | 14 + .../dashboard-charts.component.pug | 17 + .../dashboard-charts.component.scss | 1 + .../dashboard-charts.component.spec.ts | 53 + .../dashboard-charts.component.ts | 12 + .../dashboard-tables.component.html | 4 + .../dashboard-tables.component.pug | 6 + .../dashboard-tables.component.scss | 1 + .../dashboard-tables.component.spec.ts | 53 + .../dashboard-tables.component.ts | 12 + .../src/pages/dashboard/components/index.ts | 13 + .../dashboard/dashboard.component.html | 1 + .../dashboard/dashboard.component.pug | 5 + .../dashboard/dashboard.component.scss | 1 + .../dashboard/dashboard.component.spec.ts | 50 + .../dashboard/dashboard.component.ts | 12 + .../src/pages/dashboard/containers/index.ts | 9 + .../containers/light/light.component.html | 1 + .../containers/light/light.component.pug | 5 + .../containers/light/light.component.scss | 1 + .../containers/light/light.component.spec.ts | 50 + .../containers/light/light.component.ts | 12 + .../containers/static/static.component.html | 8 + .../containers/static/static.component.pug | 12 + .../containers/static/static.component.scss | 1 + .../static/static.component.spec.ts | 50 + .../containers/static/static.component.ts | 12 + .../dashboard/dashboard-routing.module.ts | 74 + .../src/pages/dashboard/dashboard.module.ts | 40 + .../dashboard/guards/dashboard.guard.spec.ts | 23 + .../pages/dashboard/guards/dashboard.guard.ts | 10 + .../src/pages/dashboard/guards/index.ts | 5 + .../pages/dashboard/models/dashboard.model.ts | 1 + .../src/pages/dashboard/models/index.ts | 1 + .../services/dashboard.service.spec.ts | 22 + .../dashboard/services/dashboard.service.ts | 11 + .../src/pages/dashboard/services/index.ts | 5 + .../src/pages/doing-class/components/index.ts | 1 + .../class-list/class-list.component.html | 82 + .../class-list/class-list.component.pug | 35 + .../class-list/class-list.component.scss | 172 + .../class-list/class-list.component.ts | 110 + .../class-view/class-view.component.html | 43 + .../class-view/class-view.component.pug | 35 + .../class-view/class-view.component.scss | 53 + .../class-view/class-view.component.ts | 63 + .../doing-class/doing-class.component.html | 29 + .../doing-class/doing-class.component.pug | 35 + .../doing-class/doing-class.component.scss | 81 + .../doing-class/doing-class.component.ts | 45 + .../game-viewer/game-viewer.component.html | 10 + .../game-viewer/game-viewer.component.pug | 35 + .../game-viewer/game-viewer.component.scss | 22 + .../game-viewer/game-viewer.component.ts | 28 + .../src/pages/doing-class/containers/index.ts | 17 + .../pdf-viewer/pdf-viewer.component.html | 8 + .../pdf-viewer/pdf-viewer.component.pug | 35 + .../pdf-viewer/pdf-viewer.component.scss | 36 + .../pdf-viewer/pdf-viewer.component.ts | 82 + .../slide-viewer/slide-viewer.component.html | 1 + .../slide-viewer/slide-viewer.component.pug | 35 + .../slide-viewer/slide-viewer.component.scss | 2 + .../slide-viewer/slide-viewer.component.ts | 27 + .../video-player/video-player.component.html | 12 + .../video-player/video-player.component.pug | 35 + .../video-player/video-player.component.scss | 22 + .../video-player/video-player.component.ts | 29 + .../doing-class/doing-class-routing.module.ts | 41 + .../pages/doing-class/doing-class.module.ts | 36 + .../doing-class/models/doing-class.model.ts | 7 + .../src/pages/doing-class/models/index.ts | 1 + .../services/doing-class.service.ts | 33 + .../src/pages/doing-class/services/index.ts | 5 + backoffice/src/pages/general/colors.ts | 71 + .../dynamic-table.component.html | 123 + .../dynamic-table.component.scss | 0 .../dynamic-table/dynamic-table.component.ts | 119 + .../dynamic-table/table-data.model.ts | 27 + .../general-dialog.component.html | 8 + .../general-dialog.component.pug | 35 + .../general-dialog.component.scss | 30 + .../general-dialog.component.ts | 30 + .../src/pages/general/containers/index.ts | 9 + .../general/containers/lazy-load.directive.ts | 29 + .../src/pages/general/general.module.ts | 32 + .../pages/general/models/general-models.ts | 4 + backoffice/src/pages/general/models/index.ts | 1 + .../src/pages/general/services/index.ts | 7 + .../general/services/safe_url.service.ts | 13 + .../general/services/translations.service.ts | 43 + .../src/pages/users/components/index.ts | 1 + .../src/pages/users/containers/index.ts | 7 + .../containers/input/input.component.html | 36 + .../containers/input/input.component.pug | 35 + .../containers/input/input.component.scss | 38 + .../users/containers/input/input.component.ts | 87 + .../users/containers/list/list.component.html | 9 + .../users/containers/list/list.component.pug | 25 + .../users/containers/list/list.component.scss | 1 + .../users/containers/list/list.component.ts | 37 + backoffice/src/pages/users/models/index.ts | 2 + .../src/pages/users/models/user.model.ts | 22 + .../pages/users/models/usercourses.model.ts | 34 + backoffice/src/pages/users/services/index.ts | 5 + .../src/pages/users/services/user.service.ts | 113 + .../src/pages/users/users-routing.module.ts | 49 + backoffice/src/pages/users/users.module.ts | 36 + backoffice/src/plataformamaker.sql | 1002 + backoffice/src/polyfills.ts | 62 + backoffice/src/styles/_global.scss | 14 + backoffice/src/styles/_variables.scss | 9 + .../src/styles/layout/_authentication.scss | 12 + .../src/styles/layout/_dashboard-default.scss | 78 + .../src/styles/layout/_dashboard-fixed.scss | 24 + backoffice/src/styles/layout/_error.scss | 16 + backoffice/src/styles/maker_book.scss | 78 + backoffice/src/styles/navigation/_nav.scss | 7 + backoffice/src/styles/navigation/_topnav.scss | 23 + .../navigation/sidenav/_sidenav-dark.scss | 33 + .../navigation/sidenav/_sidenav-light.scss | 33 + .../styles/navigation/sidenav/_sidenav.scss | 48 + backoffice/src/styles/styles.scss | 21 + .../src/styles/variables/_navigation.scss | 27 + backoffice/src/styles/variables/_spacing.scss | 7 + backoffice/src/test.ts | 17 + backoffice/src/testing/mocks/auth.ts | 9 + backoffice/src/testing/mocks/index.ts | 2 + backoffice/src/testing/mocks/navigation.ts | 7 + backoffice/src/testing/stubs/angular.ts | 30 + backoffice/src/testing/stubs/auth.ts | 12 + backoffice/src/testing/stubs/index.ts | 3 + backoffice/src/testing/stubs/navigation.ts | 10 + backoffice/src/typings/global.d.ts | 5 + backoffice/tsconfig.app.json | 19 + backoffice/tsconfig.json | 48 + backoffice/tsconfig.spec.json | 18 + backoffice/tslint.json | 116 + backoffice/version | 1 + books_viewer/.gitignore | 43 + books_viewer/.metadata | 45 + books_viewer/README.md | 16 + books_viewer/analysis_options.yaml | 28 + books_viewer/android/.gitignore | 13 + books_viewer/android/app/build.gradle | 79 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 48 + .../com/example/books_viewer/MainActivity.kt | 14 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5872 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3511 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 8260 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 12975 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 17152 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../main/res/xml/network_security_config.xml | 4 + .../app/src/profile/AndroidManifest.xml | 7 + books_viewer/android/build.gradle | 18 + books_viewer/android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + books_viewer/android/settings.gradle | 25 + books_viewer/assets/images/background.png | Bin 0 -> 752181 bytes books_viewer/assets/images/hand.png | Bin 0 -> 6342 bytes books_viewer/assets/images/icon.png | Bin 0 -> 35074 bytes books_viewer/assets/images/lamp.png | Bin 0 -> 6266 bytes books_viewer/assets/images/robot.png | Bin 0 -> 290397 bytes books_viewer/assets/images/seta.png | Bin 0 -> 11210 bytes books_viewer/assets/images/zoom.png | Bin 0 -> 5963 bytes books_viewer/assets/sample.epub | Bin 0 -> 87515 bytes books_viewer/assets/sounds/open_book.mp3 | Bin 0 -> 171501 bytes books_viewer/ios/.gitignore | 34 + .../ios/Flutter/AppFrameworkInfo.plist | 26 + books_viewer/ios/Flutter/Debug.xcconfig | 1 + books_viewer/ios/Flutter/Release.xcconfig | 1 + .../ios/Runner.xcodeproj/project.pbxproj | 616 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + books_viewer/ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 133666 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 814 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 2279 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 3995 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1404 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 3824 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 6466 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 2279 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 5803 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 9339 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 3083 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 7649 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 3711 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 8756 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 9339 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 14320 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 5014 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 11384 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 5405 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 11877 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 13192 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + .../ios/Runner/Base.lproj/Main.storyboard | 26 + books_viewer/ios/Runner/Info.plist | 49 + .../ios/Runner/Runner-Bridging-Header.h | 1 + .../ios/RunnerTests/RunnerTests.swift | 12 + books_viewer/lib/main.dart | 26 + books_viewer/lib/pages/about_page.dart | 80 + books_viewer/lib/pages/epub_page.dart | 21 + books_viewer/lib/pages/home_page.dart | 259 + books_viewer/lib/pages/login_page.dart | 359 + books_viewer/lib/pages/pdf_page.dart | 15 + books_viewer/lib/pages/privacy_page.dart | 57 + books_viewer/lib/pages/qr_code_scanner.dart | 92 + books_viewer/lib/utils/encrypt.dart | 24 + books_viewer/lib/utils/global.dart | 36 + books_viewer/lib/widgets/animated_button.dart | 45 + books_viewer/lib/widgets/epub_viewer.dart | 109 + books_viewer/lib/widgets/epub_viewer2.dart | 121 + books_viewer/lib/widgets/pdf_viewer.dart | 600 + books_viewer/lib/widgets/web_viewer.dart | 60 + books_viewer/linux/.gitignore | 1 + books_viewer/linux/CMakeLists.txt | 145 + books_viewer/linux/flutter/CMakeLists.txt | 88 + .../flutter/generated_plugin_registrant.cc | 15 + .../flutter/generated_plugin_registrant.h | 15 + .../linux/flutter/generated_plugins.cmake | 24 + books_viewer/linux/main.cc | 6 + books_viewer/linux/my_application.cc | 124 + books_viewer/linux/my_application.h | 18 + books_viewer/macos/.gitignore | 7 + .../macos/Flutter/Flutter-Debug.xcconfig | 1 + .../macos/Flutter/Flutter-Release.xcconfig | 1 + .../Flutter/GeneratedPluginRegistrant.swift | 16 + .../macos/Runner.xcodeproj/project.pbxproj | 705 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + books_viewer/macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 + .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 343 + .../macos/Runner/Configs/AppInfo.xcconfig | 14 + .../macos/Runner/Configs/Debug.xcconfig | 2 + .../macos/Runner/Configs/Release.xcconfig | 2 + .../macos/Runner/Configs/Warnings.xcconfig | 13 + .../macos/Runner/DebugProfile.entitlements | 12 + books_viewer/macos/Runner/Info.plist | 32 + .../macos/Runner/MainFlutterWindow.swift | 15 + .../macos/Runner/Release.entitlements | 8 + .../macos/RunnerTests/RunnerTests.swift | 12 + books_viewer/pubspec.yaml | 124 + books_viewer/test/widget_test.dart | 30 + books_viewer/web/favicon.png | Bin 0 -> 917 bytes books_viewer/web/icons/Icon-192.png | Bin 0 -> 5292 bytes books_viewer/web/icons/Icon-512.png | Bin 0 -> 8252 bytes books_viewer/web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes books_viewer/web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes books_viewer/web/index.html | 38 + books_viewer/web/manifest.json | 35 + books_viewer/windows/.gitignore | 17 + books_viewer/windows/CMakeLists.txt | 108 + books_viewer/windows/flutter/CMakeLists.txt | 109 + .../flutter/generated_plugin_registrant.cc | 14 + .../flutter/generated_plugin_registrant.h | 15 + .../windows/flutter/generated_plugins.cmake | 24 + books_viewer/windows/runner/CMakeLists.txt | 40 + books_viewer/windows/runner/Runner.rc | 121 + .../windows/runner/flutter_window.cpp | 71 + books_viewer/windows/runner/flutter_window.h | 33 + books_viewer/windows/runner/main.cpp | 43 + books_viewer/windows/runner/resource.h | 16 + .../windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes .../windows/runner/runner.exe.manifest | 20 + books_viewer/windows/runner/utils.cpp | 65 + books_viewer/windows/runner/utils.h | 19 + books_viewer/windows/runner/win32_window.cpp | 288 + books_viewer/windows/runner/win32_window.h | 102 + lojas/google/Icone Maker Book 3-01.png | Bin 0 -> 83172 bytes lojas/google/banner.png | Bin 0 -> 700699 bytes lojas/google/p0.jpeg | Bin 0 -> 59256 bytes lojas/google/p1.jpeg | Bin 0 -> 58713 bytes lojas/google/p2.jpeg | Bin 0 -> 81035 bytes lojas/google/p3.jpeg | Bin 0 -> 89578 bytes lojas/google/p4.jpeg | Bin 0 -> 85796 bytes 724 files changed, 61482 insertions(+) create mode 100644 .gitignore create mode 100644 api/connector.js create mode 100644 api/controllers/authController.js create mode 100644 api/controllers/booksController.js create mode 100644 api/controllers/coursesController.js create mode 100644 api/controllers/usersController.js create mode 100644 api/package-lock.json create mode 100644 api/package.json create mode 100644 api/server.js create mode 100644 api/utils/fileUtils.js create mode 100644 api/utils/formUtils.js create mode 100644 backoffice/.dockerignore create mode 100644 backoffice/.editorconfig create mode 100644 backoffice/.gitignore create mode 100644 backoffice/.markdownlint.json create mode 100644 backoffice/.prettierrc.json create mode 100644 backoffice/.pug-lintrc.json create mode 100644 backoffice/CHANGELOG.md create mode 100644 backoffice/Dockerfile create mode 100644 backoffice/LICENSE create mode 100644 backoffice/README.md create mode 100644 backoffice/angular.json create mode 100644 backoffice/browserslist create mode 100644 backoffice/e2e/protractor.conf.js create mode 100644 backoffice/e2e/src/app.e2e-spec.ts create mode 100644 backoffice/e2e/src/app.po.ts create mode 100644 backoffice/e2e/tsconfig.json create mode 100644 backoffice/karma.conf.js create mode 100644 backoffice/nginx.conf create mode 100644 backoffice/package-lock.json create mode 100644 backoffice/package.json create mode 100644 backoffice/scripts/build-pug.js create mode 100644 backoffice/scripts/docker/docker-build.js create mode 100644 backoffice/scripts/docker/docker-run.js create mode 100644 backoffice/scripts/docker/start-nginx.sh create mode 100644 backoffice/scripts/pug-watch.js create mode 100644 backoffice/scripts/render-pug.js create mode 100644 backoffice/scripts/start.js create mode 100644 backoffice/scripts/version.js create mode 100644 backoffice/src/app/app-routing.module.ts create mode 100644 backoffice/src/app/app.component.html create mode 100644 backoffice/src/app/app.component.pug create mode 100644 backoffice/src/app/app.component.scss create mode 100644 backoffice/src/app/app.component.spec.ts create mode 100644 backoffice/src/app/app.component.ts create mode 100644 backoffice/src/app/app.module.ts create mode 100644 backoffice/src/assets/.gitkeep create mode 100644 backoffice/src/assets/i18n/en.json create mode 100644 backoffice/src/assets/i18n/pt.json create mode 100644 backoffice/src/assets/img/error-404-monochrome.svg create mode 100644 backoffice/src/assets/img/icons/ContentIcon.svg create mode 100644 backoffice/src/assets/img/icons/English.svg create mode 100644 backoffice/src/assets/img/icons/GameIcon(1).svg create mode 100644 backoffice/src/assets/img/icons/GameIcon.svg create mode 100644 backoffice/src/assets/img/icons/Logout.svg create mode 100644 backoffice/src/assets/img/icons/PlayIcon(1).svg create mode 100644 backoffice/src/assets/img/icons/PlayIcon.svg create mode 100644 backoffice/src/assets/img/icons/Portuguese.svg create mode 100644 backoffice/src/assets/img/icons/__MACOSX/._Content Icon.svg create mode 100644 backoffice/src/assets/img/icons/__MACOSX/._English.svg create mode 100644 backoffice/src/assets/img/icons/__MACOSX/._Game Icon (1).svg create mode 100644 backoffice/src/assets/img/icons/__MACOSX/._Game Icon.svg create mode 100644 backoffice/src/assets/img/icons/__MACOSX/._Play Icon (1).svg create mode 100644 backoffice/src/assets/img/icons/__MACOSX/._Play Icon.svg create mode 100644 backoffice/src/assets/img/icons/__MACOSX/._Portuguese.svg create mode 100644 backoffice/src/assets/img/icons/__MACOSX/._fa6-solid_camera.svg create mode 100644 backoffice/src/assets/img/icons/fa6-solid_camera.svg create mode 100644 backoffice/src/assets/img/logo.png create mode 100644 backoffice/src/assets/version create mode 100644 backoffice/src/environments/environment.prod.ts create mode 100644 backoffice/src/environments/environment.ts create mode 100644 backoffice/src/favicon.ico create mode 100644 backoffice/src/favicon.png create mode 100644 backoffice/src/index.html create mode 100644 backoffice/src/main.ts create mode 100644 backoffice/src/modules/app-common/app-common.module.ts create mode 100644 backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.html create mode 100644 backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.pug create mode 100644 backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.scss create mode 100644 backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.spec.ts create mode 100644 backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.ts create mode 100644 backoffice/src/modules/app-common/components/card/card.component.html create mode 100644 backoffice/src/modules/app-common/components/card/card.component.pug create mode 100644 backoffice/src/modules/app-common/components/card/card.component.scss create mode 100644 backoffice/src/modules/app-common/components/card/card.component.spec.ts create mode 100644 backoffice/src/modules/app-common/components/card/card.component.ts create mode 100644 backoffice/src/modules/app-common/components/index.ts create mode 100644 backoffice/src/modules/app-common/containers/index.ts create mode 100644 backoffice/src/modules/app-common/guards/app-common.guard.spec.ts create mode 100644 backoffice/src/modules/app-common/guards/app-common.guard.ts create mode 100644 backoffice/src/modules/app-common/guards/index.ts create mode 100644 backoffice/src/modules/app-common/models/app-common.model.ts create mode 100644 backoffice/src/modules/app-common/models/index.ts create mode 100644 backoffice/src/modules/app-common/services/app-common.service.spec.ts create mode 100644 backoffice/src/modules/app-common/services/app-common.service.ts create mode 100644 backoffice/src/modules/app-common/services/index.ts create mode 100644 backoffice/src/modules/auth/auth-routing.module.ts create mode 100644 backoffice/src/modules/auth/auth.module.ts create mode 100644 backoffice/src/modules/auth/components/index.ts create mode 100644 backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.html create mode 100644 backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.pug create mode 100644 backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.scss create mode 100644 backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.spec.ts create mode 100644 backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.ts create mode 100644 backoffice/src/modules/auth/containers/index.ts create mode 100644 backoffice/src/modules/auth/containers/login/login.component.html create mode 100644 backoffice/src/modules/auth/containers/login/login.component.pug create mode 100644 backoffice/src/modules/auth/containers/login/login.component.scss create mode 100644 backoffice/src/modules/auth/containers/login/login.component.spec.ts create mode 100644 backoffice/src/modules/auth/containers/login/login.component.ts create mode 100644 backoffice/src/modules/auth/containers/register/register.component.html create mode 100644 backoffice/src/modules/auth/containers/register/register.component.pug create mode 100644 backoffice/src/modules/auth/containers/register/register.component.scss create mode 100644 backoffice/src/modules/auth/containers/register/register.component.spec.ts create mode 100644 backoffice/src/modules/auth/containers/register/register.component.ts create mode 100644 backoffice/src/modules/auth/guards/auth.guard.spec.ts create mode 100644 backoffice/src/modules/auth/guards/auth.guard.ts create mode 100644 backoffice/src/modules/auth/guards/index.ts create mode 100644 backoffice/src/modules/auth/models/auth.model.ts create mode 100644 backoffice/src/modules/auth/models/index.ts create mode 100644 backoffice/src/modules/auth/services/auth.service.spec.ts create mode 100644 backoffice/src/modules/auth/services/auth.service.ts create mode 100644 backoffice/src/modules/auth/services/index.ts create mode 100644 backoffice/src/modules/auth/services/user.service.spec.ts create mode 100644 backoffice/src/modules/auth/services/user.service.ts create mode 100644 backoffice/src/modules/charts/charts-routing.module.ts create mode 100644 backoffice/src/modules/charts/charts.module.ts create mode 100644 backoffice/src/modules/charts/components/charts-area/charts-area.component.html create mode 100644 backoffice/src/modules/charts/components/charts-area/charts-area.component.pug create mode 100644 backoffice/src/modules/charts/components/charts-area/charts-area.component.scss create mode 100644 backoffice/src/modules/charts/components/charts-area/charts-area.component.spec.ts create mode 100644 backoffice/src/modules/charts/components/charts-area/charts-area.component.ts create mode 100644 backoffice/src/modules/charts/components/charts-bar/charts-bar.component.html create mode 100644 backoffice/src/modules/charts/components/charts-bar/charts-bar.component.pug create mode 100644 backoffice/src/modules/charts/components/charts-bar/charts-bar.component.scss create mode 100644 backoffice/src/modules/charts/components/charts-bar/charts-bar.component.spec.ts create mode 100644 backoffice/src/modules/charts/components/charts-bar/charts-bar.component.ts create mode 100644 backoffice/src/modules/charts/components/charts-pie/charts-pie.component.html create mode 100644 backoffice/src/modules/charts/components/charts-pie/charts-pie.component.pug create mode 100644 backoffice/src/modules/charts/components/charts-pie/charts-pie.component.scss create mode 100644 backoffice/src/modules/charts/components/charts-pie/charts-pie.component.spec.ts create mode 100644 backoffice/src/modules/charts/components/charts-pie/charts-pie.component.ts create mode 100644 backoffice/src/modules/charts/components/index.ts create mode 100644 backoffice/src/modules/charts/containers/charts/charts.component.html create mode 100644 backoffice/src/modules/charts/containers/charts/charts.component.pug create mode 100644 backoffice/src/modules/charts/containers/charts/charts.component.scss create mode 100644 backoffice/src/modules/charts/containers/charts/charts.component.spec.ts create mode 100644 backoffice/src/modules/charts/containers/charts/charts.component.ts create mode 100644 backoffice/src/modules/charts/containers/index.ts create mode 100644 backoffice/src/modules/charts/guards/charts.guard.spec.ts create mode 100644 backoffice/src/modules/charts/guards/charts.guard.ts create mode 100644 backoffice/src/modules/charts/guards/index.ts create mode 100644 backoffice/src/modules/charts/models/charts.model.ts create mode 100644 backoffice/src/modules/charts/models/index.ts create mode 100644 backoffice/src/modules/charts/services/charts.service.spec.ts create mode 100644 backoffice/src/modules/charts/services/charts.service.ts create mode 100644 backoffice/src/modules/charts/services/index.ts create mode 100644 backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.html create mode 100644 backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.pug create mode 100644 backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.scss create mode 100644 backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.spec.ts create mode 100644 backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.ts create mode 100644 backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.html create mode 100644 backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.pug create mode 100644 backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.scss create mode 100644 backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.spec.ts create mode 100644 backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.ts create mode 100644 backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.html create mode 100644 backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.pug create mode 100644 backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.scss create mode 100644 backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.spec.ts create mode 100644 backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.ts create mode 100644 backoffice/src/modules/dashboard/components/index.ts create mode 100644 backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.html create mode 100644 backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.pug create mode 100644 backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.scss create mode 100644 backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.spec.ts create mode 100644 backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.ts create mode 100644 backoffice/src/modules/dashboard/containers/index.ts create mode 100644 backoffice/src/modules/dashboard/containers/light/light.component.html create mode 100644 backoffice/src/modules/dashboard/containers/light/light.component.pug create mode 100644 backoffice/src/modules/dashboard/containers/light/light.component.scss create mode 100644 backoffice/src/modules/dashboard/containers/light/light.component.spec.ts create mode 100644 backoffice/src/modules/dashboard/containers/light/light.component.ts create mode 100644 backoffice/src/modules/dashboard/containers/static/static.component.html create mode 100644 backoffice/src/modules/dashboard/containers/static/static.component.pug create mode 100644 backoffice/src/modules/dashboard/containers/static/static.component.scss create mode 100644 backoffice/src/modules/dashboard/containers/static/static.component.spec.ts create mode 100644 backoffice/src/modules/dashboard/containers/static/static.component.ts create mode 100644 backoffice/src/modules/dashboard/dashboard-routing.module.ts create mode 100644 backoffice/src/modules/dashboard/dashboard.module.ts create mode 100644 backoffice/src/modules/dashboard/guards/dashboard.guard.spec.ts create mode 100644 backoffice/src/modules/dashboard/guards/dashboard.guard.ts create mode 100644 backoffice/src/modules/dashboard/guards/index.ts create mode 100644 backoffice/src/modules/dashboard/models/dashboard.model.ts create mode 100644 backoffice/src/modules/dashboard/models/index.ts create mode 100644 backoffice/src/modules/dashboard/services/dashboard.service.spec.ts create mode 100644 backoffice/src/modules/dashboard/services/dashboard.service.ts create mode 100644 backoffice/src/modules/dashboard/services/index.ts create mode 100644 backoffice/src/modules/error/components/index.ts create mode 100644 backoffice/src/modules/error/containers/error-401/error-401.component.html create mode 100644 backoffice/src/modules/error/containers/error-401/error-401.component.pug create mode 100644 backoffice/src/modules/error/containers/error-401/error-401.component.scss create mode 100644 backoffice/src/modules/error/containers/error-401/error-401.component.spec.ts create mode 100644 backoffice/src/modules/error/containers/error-401/error-401.component.ts create mode 100644 backoffice/src/modules/error/containers/error-404/error-404.component.html create mode 100644 backoffice/src/modules/error/containers/error-404/error-404.component.pug create mode 100644 backoffice/src/modules/error/containers/error-404/error-404.component.scss create mode 100644 backoffice/src/modules/error/containers/error-404/error-404.component.spec.ts create mode 100644 backoffice/src/modules/error/containers/error-404/error-404.component.ts create mode 100644 backoffice/src/modules/error/containers/error-500/error-500.component.html create mode 100644 backoffice/src/modules/error/containers/error-500/error-500.component.pug create mode 100644 backoffice/src/modules/error/containers/error-500/error-500.component.scss create mode 100644 backoffice/src/modules/error/containers/error-500/error-500.component.spec.ts create mode 100644 backoffice/src/modules/error/containers/error-500/error-500.component.ts create mode 100644 backoffice/src/modules/error/containers/index.ts create mode 100644 backoffice/src/modules/error/error-routing.module.ts create mode 100644 backoffice/src/modules/error/error.module.ts create mode 100644 backoffice/src/modules/error/guards/error.guard.spec.ts create mode 100644 backoffice/src/modules/error/guards/error.guard.ts create mode 100644 backoffice/src/modules/error/guards/index.ts create mode 100644 backoffice/src/modules/error/models/error.model.ts create mode 100644 backoffice/src/modules/error/models/index.ts create mode 100644 backoffice/src/modules/error/services/error.service.spec.ts create mode 100644 backoffice/src/modules/error/services/error.service.ts create mode 100644 backoffice/src/modules/error/services/index.ts create mode 100644 backoffice/src/modules/icons/icons.font-awesome-brands.ts create mode 100644 backoffice/src/modules/icons/icons.font-awesome-regular.ts create mode 100644 backoffice/src/modules/icons/icons.font-awesome-solid.ts create mode 100644 backoffice/src/modules/icons/icons.module.ts create mode 100644 backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.html create mode 100644 backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.pug create mode 100644 backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.scss create mode 100644 backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.spec.ts create mode 100644 backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.ts create mode 100644 backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.html create mode 100644 backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.pug create mode 100644 backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.scss create mode 100644 backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.spec.ts create mode 100644 backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.ts create mode 100644 backoffice/src/modules/navigation/components/index.ts create mode 100644 backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.html create mode 100644 backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.pug create mode 100644 backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.scss create mode 100644 backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.spec.ts create mode 100644 backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.ts create mode 100644 backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.html create mode 100644 backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.pug create mode 100644 backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.scss create mode 100644 backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.spec.ts create mode 100644 backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.ts create mode 100644 backoffice/src/modules/navigation/containers/footer/footer.component.html create mode 100644 backoffice/src/modules/navigation/containers/footer/footer.component.pug create mode 100644 backoffice/src/modules/navigation/containers/footer/footer.component.scss create mode 100644 backoffice/src/modules/navigation/containers/footer/footer.component.spec.ts create mode 100644 backoffice/src/modules/navigation/containers/footer/footer.component.ts create mode 100644 backoffice/src/modules/navigation/containers/index.ts create mode 100644 backoffice/src/modules/navigation/containers/side-nav/side-nav.component.html create mode 100644 backoffice/src/modules/navigation/containers/side-nav/side-nav.component.pug create mode 100644 backoffice/src/modules/navigation/containers/side-nav/side-nav.component.scss create mode 100644 backoffice/src/modules/navigation/containers/side-nav/side-nav.component.spec.ts create mode 100644 backoffice/src/modules/navigation/containers/side-nav/side-nav.component.ts create mode 100644 backoffice/src/modules/navigation/containers/top-nav/top-nav.component.html create mode 100644 backoffice/src/modules/navigation/containers/top-nav/top-nav.component.pug create mode 100644 backoffice/src/modules/navigation/containers/top-nav/top-nav.component.scss create mode 100644 backoffice/src/modules/navigation/containers/top-nav/top-nav.component.spec.ts create mode 100644 backoffice/src/modules/navigation/containers/top-nav/top-nav.component.ts create mode 100644 backoffice/src/modules/navigation/data/index.ts create mode 100644 backoffice/src/modules/navigation/data/side-nav.data.ts create mode 100644 backoffice/src/modules/navigation/guards/index.ts create mode 100644 backoffice/src/modules/navigation/guards/navigation.guard.spec.ts create mode 100644 backoffice/src/modules/navigation/guards/navigation.guard.ts create mode 100644 backoffice/src/modules/navigation/layouts/index.ts create mode 100644 backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.html create mode 100644 backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.pug create mode 100644 backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.scss create mode 100644 backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.spec.ts create mode 100644 backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.ts create mode 100644 backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.html create mode 100644 backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.pug create mode 100644 backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.scss create mode 100644 backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.spec.ts create mode 100644 backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.ts create mode 100644 backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.html create mode 100644 backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.pug create mode 100644 backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.scss create mode 100644 backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.spec.ts create mode 100644 backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.ts create mode 100644 backoffice/src/modules/navigation/models/index.ts create mode 100644 backoffice/src/modules/navigation/models/navigation.model.ts create mode 100644 backoffice/src/modules/navigation/navigation.module.ts create mode 100644 backoffice/src/modules/navigation/services/index.ts create mode 100644 backoffice/src/modules/navigation/services/navigation.service.spec.ts create mode 100644 backoffice/src/modules/navigation/services/navigation.service.ts create mode 100644 backoffice/src/modules/navigation/services/side-nav.service.spec.ts create mode 100644 backoffice/src/modules/navigation/services/side-nav.service.ts create mode 100644 backoffice/src/modules/tables/components/index.ts create mode 100644 backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.html create mode 100644 backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.pug create mode 100644 backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.scss create mode 100644 backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.spec.ts create mode 100644 backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.ts create mode 100644 backoffice/src/modules/tables/components/sort-icon/sort-icon.component.html create mode 100644 backoffice/src/modules/tables/components/sort-icon/sort-icon.component.pug create mode 100644 backoffice/src/modules/tables/components/sort-icon/sort-icon.component.scss create mode 100644 backoffice/src/modules/tables/components/sort-icon/sort-icon.component.spec.ts create mode 100644 backoffice/src/modules/tables/components/sort-icon/sort-icon.component.ts create mode 100644 backoffice/src/modules/tables/containers/index.ts create mode 100644 backoffice/src/modules/tables/containers/tables/tables.component.html create mode 100644 backoffice/src/modules/tables/containers/tables/tables.component.pug create mode 100644 backoffice/src/modules/tables/containers/tables/tables.component.scss create mode 100644 backoffice/src/modules/tables/containers/tables/tables.component.spec.ts create mode 100644 backoffice/src/modules/tables/containers/tables/tables.component.ts create mode 100644 backoffice/src/modules/tables/data/countries.ts create mode 100644 backoffice/src/modules/tables/directives/index.ts create mode 100644 backoffice/src/modules/tables/directives/sortable.directive.ts create mode 100644 backoffice/src/modules/tables/guards/index.ts create mode 100644 backoffice/src/modules/tables/guards/tables.guard.spec.ts create mode 100644 backoffice/src/modules/tables/guards/tables.guard.ts create mode 100644 backoffice/src/modules/tables/models/index.ts create mode 100644 backoffice/src/modules/tables/models/tables.model.ts create mode 100644 backoffice/src/modules/tables/services/country.service.spec.ts create mode 100644 backoffice/src/modules/tables/services/country.service.ts create mode 100644 backoffice/src/modules/tables/services/index.ts create mode 100644 backoffice/src/modules/tables/services/tables.service.spec.ts create mode 100644 backoffice/src/modules/tables/services/tables.service.ts create mode 100644 backoffice/src/modules/tables/tables-routing.module.ts create mode 100644 backoffice/src/modules/tables/tables.module.ts create mode 100644 backoffice/src/modules/utility/components/index.ts create mode 100644 backoffice/src/modules/utility/containers/index.ts create mode 100644 backoffice/src/modules/utility/containers/version/version.component.html create mode 100644 backoffice/src/modules/utility/containers/version/version.component.pug create mode 100644 backoffice/src/modules/utility/containers/version/version.component.scss create mode 100644 backoffice/src/modules/utility/containers/version/version.component.spec.ts create mode 100644 backoffice/src/modules/utility/containers/version/version.component.ts create mode 100644 backoffice/src/modules/utility/guards/index.ts create mode 100644 backoffice/src/modules/utility/guards/utility.guard.spec.ts create mode 100644 backoffice/src/modules/utility/guards/utility.guard.ts create mode 100644 backoffice/src/modules/utility/models/index.ts create mode 100644 backoffice/src/modules/utility/models/utility.model.ts create mode 100644 backoffice/src/modules/utility/services/index.ts create mode 100644 backoffice/src/modules/utility/services/utility.service.spec.ts create mode 100644 backoffice/src/modules/utility/services/utility.service.ts create mode 100644 backoffice/src/modules/utility/utility-routing.module.ts create mode 100644 backoffice/src/modules/utility/utility.module.ts create mode 100644 backoffice/src/pages/auth/auth-routing.module.ts create mode 100644 backoffice/src/pages/auth/auth.module.ts create mode 100644 backoffice/src/pages/auth/components/index.ts create mode 100644 backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.html create mode 100644 backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.pug create mode 100644 backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.scss create mode 100644 backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.spec.ts create mode 100644 backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.ts create mode 100644 backoffice/src/pages/auth/containers/index.ts create mode 100644 backoffice/src/pages/auth/containers/login-book/login-book.component.html create mode 100644 backoffice/src/pages/auth/containers/login-book/login-book.component.pug create mode 100644 backoffice/src/pages/auth/containers/login-book/login-book.component.scss create mode 100644 backoffice/src/pages/auth/containers/login-book/login-book.component.ts create mode 100644 backoffice/src/pages/auth/containers/login/login.component.html create mode 100644 backoffice/src/pages/auth/containers/login/login.component.pug create mode 100644 backoffice/src/pages/auth/containers/login/login.component.scss create mode 100644 backoffice/src/pages/auth/containers/login/login.component.ts create mode 100644 backoffice/src/pages/auth/containers/register/register.component.html create mode 100644 backoffice/src/pages/auth/containers/register/register.component.pug create mode 100644 backoffice/src/pages/auth/containers/register/register.component.scss create mode 100644 backoffice/src/pages/auth/containers/register/register.component.spec.ts create mode 100644 backoffice/src/pages/auth/containers/register/register.component.ts create mode 100644 backoffice/src/pages/auth/models/auth.model.ts create mode 100644 backoffice/src/pages/auth/models/index.ts create mode 100644 backoffice/src/pages/auth/services/auth.service.ts create mode 100644 backoffice/src/pages/auth/services/index.ts create mode 100644 backoffice/src/pages/books/books-routing.module.ts create mode 100644 backoffice/src/pages/books/books.module.ts create mode 100644 backoffice/src/pages/books/components/index.ts create mode 100644 backoffice/src/pages/books/containers/index.ts create mode 100644 backoffice/src/pages/books/containers/input/input.component.html create mode 100644 backoffice/src/pages/books/containers/input/input.component.pug create mode 100644 backoffice/src/pages/books/containers/input/input.component.scss create mode 100644 backoffice/src/pages/books/containers/input/input.component.ts create mode 100644 backoffice/src/pages/books/containers/list/list.component.html create mode 100644 backoffice/src/pages/books/containers/list/list.component.pug create mode 100644 backoffice/src/pages/books/containers/list/list.component.scss create mode 100644 backoffice/src/pages/books/containers/list/list.component.ts create mode 100644 backoffice/src/pages/books/models/books.model.ts create mode 100644 backoffice/src/pages/books/models/index.ts create mode 100644 backoffice/src/pages/books/services/books.service.ts create mode 100644 backoffice/src/pages/books/services/index.ts create mode 100644 backoffice/src/pages/classes/classes-routing.module.ts create mode 100644 backoffice/src/pages/classes/classes.module.ts create mode 100644 backoffice/src/pages/classes/components/index.ts create mode 100644 backoffice/src/pages/classes/containers/index.ts create mode 100644 backoffice/src/pages/classes/containers/input/input.component.html create mode 100644 backoffice/src/pages/classes/containers/input/input.component.pug create mode 100644 backoffice/src/pages/classes/containers/input/input.component.scss create mode 100644 backoffice/src/pages/classes/containers/input/input.component.ts create mode 100644 backoffice/src/pages/classes/models/classcontent.model.ts create mode 100644 backoffice/src/pages/classes/models/classes.model.ts create mode 100644 backoffice/src/pages/classes/models/index.ts create mode 100644 backoffice/src/pages/classes/services/classcontent.service.ts create mode 100644 backoffice/src/pages/classes/services/classes.service.ts create mode 100644 backoffice/src/pages/classes/services/index.ts create mode 100644 backoffice/src/pages/courses/components/index.ts create mode 100644 backoffice/src/pages/courses/containers/index.ts create mode 100644 backoffice/src/pages/courses/containers/input/input.component.html create mode 100644 backoffice/src/pages/courses/containers/input/input.component.pug create mode 100644 backoffice/src/pages/courses/containers/input/input.component.scss create mode 100644 backoffice/src/pages/courses/containers/input/input.component.ts create mode 100644 backoffice/src/pages/courses/containers/list/list.component.html create mode 100644 backoffice/src/pages/courses/containers/list/list.component.pug create mode 100644 backoffice/src/pages/courses/containers/list/list.component.scss create mode 100644 backoffice/src/pages/courses/containers/list/list.component.ts create mode 100644 backoffice/src/pages/courses/courses-routing.module.ts create mode 100644 backoffice/src/pages/courses/courses.module.ts create mode 100644 backoffice/src/pages/courses/models/courses.model.ts create mode 100644 backoffice/src/pages/courses/models/index.ts create mode 100644 backoffice/src/pages/courses/services/courses.service.ts create mode 100644 backoffice/src/pages/courses/services/index.ts create mode 100644 backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.html create mode 100644 backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.pug create mode 100644 backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.scss create mode 100644 backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.spec.ts create mode 100644 backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.ts create mode 100644 backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.html create mode 100644 backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.pug create mode 100644 backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.scss create mode 100644 backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.spec.ts create mode 100644 backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.ts create mode 100644 backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.html create mode 100644 backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.pug create mode 100644 backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.scss create mode 100644 backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.spec.ts create mode 100644 backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.ts create mode 100644 backoffice/src/pages/dashboard/components/index.ts create mode 100644 backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.html create mode 100644 backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.pug create mode 100644 backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.scss create mode 100644 backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.spec.ts create mode 100644 backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.ts create mode 100644 backoffice/src/pages/dashboard/containers/index.ts create mode 100644 backoffice/src/pages/dashboard/containers/light/light.component.html create mode 100644 backoffice/src/pages/dashboard/containers/light/light.component.pug create mode 100644 backoffice/src/pages/dashboard/containers/light/light.component.scss create mode 100644 backoffice/src/pages/dashboard/containers/light/light.component.spec.ts create mode 100644 backoffice/src/pages/dashboard/containers/light/light.component.ts create mode 100644 backoffice/src/pages/dashboard/containers/static/static.component.html create mode 100644 backoffice/src/pages/dashboard/containers/static/static.component.pug create mode 100644 backoffice/src/pages/dashboard/containers/static/static.component.scss create mode 100644 backoffice/src/pages/dashboard/containers/static/static.component.spec.ts create mode 100644 backoffice/src/pages/dashboard/containers/static/static.component.ts create mode 100644 backoffice/src/pages/dashboard/dashboard-routing.module.ts create mode 100644 backoffice/src/pages/dashboard/dashboard.module.ts create mode 100644 backoffice/src/pages/dashboard/guards/dashboard.guard.spec.ts create mode 100644 backoffice/src/pages/dashboard/guards/dashboard.guard.ts create mode 100644 backoffice/src/pages/dashboard/guards/index.ts create mode 100644 backoffice/src/pages/dashboard/models/dashboard.model.ts create mode 100644 backoffice/src/pages/dashboard/models/index.ts create mode 100644 backoffice/src/pages/dashboard/services/dashboard.service.spec.ts create mode 100644 backoffice/src/pages/dashboard/services/dashboard.service.ts create mode 100644 backoffice/src/pages/dashboard/services/index.ts create mode 100644 backoffice/src/pages/doing-class/components/index.ts create mode 100644 backoffice/src/pages/doing-class/containers/class-list/class-list.component.html create mode 100644 backoffice/src/pages/doing-class/containers/class-list/class-list.component.pug create mode 100644 backoffice/src/pages/doing-class/containers/class-list/class-list.component.scss create mode 100644 backoffice/src/pages/doing-class/containers/class-list/class-list.component.ts create mode 100644 backoffice/src/pages/doing-class/containers/class-view/class-view.component.html create mode 100644 backoffice/src/pages/doing-class/containers/class-view/class-view.component.pug create mode 100644 backoffice/src/pages/doing-class/containers/class-view/class-view.component.scss create mode 100644 backoffice/src/pages/doing-class/containers/class-view/class-view.component.ts create mode 100644 backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.html create mode 100644 backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.pug create mode 100644 backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.scss create mode 100644 backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.ts create mode 100644 backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.html create mode 100644 backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.pug create mode 100644 backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.scss create mode 100644 backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.ts create mode 100644 backoffice/src/pages/doing-class/containers/index.ts create mode 100644 backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.html create mode 100644 backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.pug create mode 100644 backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.scss create mode 100644 backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.ts create mode 100644 backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.html create mode 100644 backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.pug create mode 100644 backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.scss create mode 100644 backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.ts create mode 100644 backoffice/src/pages/doing-class/containers/video-player/video-player.component.html create mode 100644 backoffice/src/pages/doing-class/containers/video-player/video-player.component.pug create mode 100644 backoffice/src/pages/doing-class/containers/video-player/video-player.component.scss create mode 100644 backoffice/src/pages/doing-class/containers/video-player/video-player.component.ts create mode 100644 backoffice/src/pages/doing-class/doing-class-routing.module.ts create mode 100644 backoffice/src/pages/doing-class/doing-class.module.ts create mode 100644 backoffice/src/pages/doing-class/models/doing-class.model.ts create mode 100644 backoffice/src/pages/doing-class/models/index.ts create mode 100644 backoffice/src/pages/doing-class/services/doing-class.service.ts create mode 100644 backoffice/src/pages/doing-class/services/index.ts create mode 100644 backoffice/src/pages/general/colors.ts create mode 100644 backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.html create mode 100644 backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.scss create mode 100644 backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.ts create mode 100644 backoffice/src/pages/general/containers/dynamic-table/table-data.model.ts create mode 100644 backoffice/src/pages/general/containers/general-dialog/general-dialog.component.html create mode 100644 backoffice/src/pages/general/containers/general-dialog/general-dialog.component.pug create mode 100644 backoffice/src/pages/general/containers/general-dialog/general-dialog.component.scss create mode 100644 backoffice/src/pages/general/containers/general-dialog/general-dialog.component.ts create mode 100644 backoffice/src/pages/general/containers/index.ts create mode 100644 backoffice/src/pages/general/containers/lazy-load.directive.ts create mode 100644 backoffice/src/pages/general/general.module.ts create mode 100644 backoffice/src/pages/general/models/general-models.ts create mode 100644 backoffice/src/pages/general/models/index.ts create mode 100644 backoffice/src/pages/general/services/index.ts create mode 100644 backoffice/src/pages/general/services/safe_url.service.ts create mode 100644 backoffice/src/pages/general/services/translations.service.ts create mode 100644 backoffice/src/pages/users/components/index.ts create mode 100644 backoffice/src/pages/users/containers/index.ts create mode 100644 backoffice/src/pages/users/containers/input/input.component.html create mode 100644 backoffice/src/pages/users/containers/input/input.component.pug create mode 100644 backoffice/src/pages/users/containers/input/input.component.scss create mode 100644 backoffice/src/pages/users/containers/input/input.component.ts create mode 100644 backoffice/src/pages/users/containers/list/list.component.html create mode 100644 backoffice/src/pages/users/containers/list/list.component.pug create mode 100644 backoffice/src/pages/users/containers/list/list.component.scss create mode 100644 backoffice/src/pages/users/containers/list/list.component.ts create mode 100644 backoffice/src/pages/users/models/index.ts create mode 100644 backoffice/src/pages/users/models/user.model.ts create mode 100644 backoffice/src/pages/users/models/usercourses.model.ts create mode 100644 backoffice/src/pages/users/services/index.ts create mode 100644 backoffice/src/pages/users/services/user.service.ts create mode 100644 backoffice/src/pages/users/users-routing.module.ts create mode 100644 backoffice/src/pages/users/users.module.ts create mode 100644 backoffice/src/plataformamaker.sql create mode 100644 backoffice/src/polyfills.ts create mode 100644 backoffice/src/styles/_global.scss create mode 100644 backoffice/src/styles/_variables.scss create mode 100644 backoffice/src/styles/layout/_authentication.scss create mode 100644 backoffice/src/styles/layout/_dashboard-default.scss create mode 100644 backoffice/src/styles/layout/_dashboard-fixed.scss create mode 100644 backoffice/src/styles/layout/_error.scss create mode 100644 backoffice/src/styles/maker_book.scss create mode 100644 backoffice/src/styles/navigation/_nav.scss create mode 100644 backoffice/src/styles/navigation/_topnav.scss create mode 100644 backoffice/src/styles/navigation/sidenav/_sidenav-dark.scss create mode 100644 backoffice/src/styles/navigation/sidenav/_sidenav-light.scss create mode 100644 backoffice/src/styles/navigation/sidenav/_sidenav.scss create mode 100644 backoffice/src/styles/styles.scss create mode 100644 backoffice/src/styles/variables/_navigation.scss create mode 100644 backoffice/src/styles/variables/_spacing.scss create mode 100644 backoffice/src/test.ts create mode 100644 backoffice/src/testing/mocks/auth.ts create mode 100644 backoffice/src/testing/mocks/index.ts create mode 100644 backoffice/src/testing/mocks/navigation.ts create mode 100644 backoffice/src/testing/stubs/angular.ts create mode 100644 backoffice/src/testing/stubs/auth.ts create mode 100644 backoffice/src/testing/stubs/index.ts create mode 100644 backoffice/src/testing/stubs/navigation.ts create mode 100644 backoffice/src/typings/global.d.ts create mode 100644 backoffice/tsconfig.app.json create mode 100644 backoffice/tsconfig.json create mode 100644 backoffice/tsconfig.spec.json create mode 100644 backoffice/tslint.json create mode 100644 backoffice/version create mode 100644 books_viewer/.gitignore create mode 100644 books_viewer/.metadata create mode 100644 books_viewer/README.md create mode 100644 books_viewer/analysis_options.yaml create mode 100644 books_viewer/android/.gitignore create mode 100644 books_viewer/android/app/build.gradle create mode 100644 books_viewer/android/app/src/debug/AndroidManifest.xml create mode 100644 books_viewer/android/app/src/main/AndroidManifest.xml create mode 100644 books_viewer/android/app/src/main/kotlin/com/example/books_viewer/MainActivity.kt create mode 100644 books_viewer/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 books_viewer/android/app/src/main/res/drawable/launch_background.xml create mode 100644 books_viewer/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 books_viewer/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 books_viewer/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 books_viewer/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 books_viewer/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 books_viewer/android/app/src/main/res/values-night/styles.xml create mode 100644 books_viewer/android/app/src/main/res/values/styles.xml create mode 100644 books_viewer/android/app/src/main/res/xml/network_security_config.xml create mode 100644 books_viewer/android/app/src/profile/AndroidManifest.xml create mode 100644 books_viewer/android/build.gradle create mode 100644 books_viewer/android/gradle.properties create mode 100644 books_viewer/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 books_viewer/android/settings.gradle create mode 100644 books_viewer/assets/images/background.png create mode 100644 books_viewer/assets/images/hand.png create mode 100644 books_viewer/assets/images/icon.png create mode 100644 books_viewer/assets/images/lamp.png create mode 100644 books_viewer/assets/images/robot.png create mode 100644 books_viewer/assets/images/seta.png create mode 100644 books_viewer/assets/images/zoom.png create mode 100644 books_viewer/assets/sample.epub create mode 100644 books_viewer/assets/sounds/open_book.mp3 create mode 100644 books_viewer/ios/.gitignore create mode 100644 books_viewer/ios/Flutter/AppFrameworkInfo.plist create mode 100644 books_viewer/ios/Flutter/Debug.xcconfig create mode 100644 books_viewer/ios/Flutter/Release.xcconfig create mode 100644 books_viewer/ios/Runner.xcodeproj/project.pbxproj create mode 100644 books_viewer/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 books_viewer/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 books_viewer/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 books_viewer/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 books_viewer/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 books_viewer/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 books_viewer/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 books_viewer/ios/Runner/AppDelegate.swift create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 books_viewer/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 books_viewer/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 books_viewer/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 books_viewer/ios/Runner/Base.lproj/Main.storyboard create mode 100644 books_viewer/ios/Runner/Info.plist create mode 100644 books_viewer/ios/Runner/Runner-Bridging-Header.h create mode 100644 books_viewer/ios/RunnerTests/RunnerTests.swift create mode 100644 books_viewer/lib/main.dart create mode 100644 books_viewer/lib/pages/about_page.dart create mode 100644 books_viewer/lib/pages/epub_page.dart create mode 100644 books_viewer/lib/pages/home_page.dart create mode 100644 books_viewer/lib/pages/login_page.dart create mode 100644 books_viewer/lib/pages/pdf_page.dart create mode 100644 books_viewer/lib/pages/privacy_page.dart create mode 100644 books_viewer/lib/pages/qr_code_scanner.dart create mode 100644 books_viewer/lib/utils/encrypt.dart create mode 100644 books_viewer/lib/utils/global.dart create mode 100644 books_viewer/lib/widgets/animated_button.dart create mode 100644 books_viewer/lib/widgets/epub_viewer.dart create mode 100644 books_viewer/lib/widgets/epub_viewer2.dart create mode 100644 books_viewer/lib/widgets/pdf_viewer.dart create mode 100644 books_viewer/lib/widgets/web_viewer.dart create mode 100644 books_viewer/linux/.gitignore create mode 100644 books_viewer/linux/CMakeLists.txt create mode 100644 books_viewer/linux/flutter/CMakeLists.txt create mode 100644 books_viewer/linux/flutter/generated_plugin_registrant.cc create mode 100644 books_viewer/linux/flutter/generated_plugin_registrant.h create mode 100644 books_viewer/linux/flutter/generated_plugins.cmake create mode 100644 books_viewer/linux/main.cc create mode 100644 books_viewer/linux/my_application.cc create mode 100644 books_viewer/linux/my_application.h create mode 100644 books_viewer/macos/.gitignore create mode 100644 books_viewer/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 books_viewer/macos/Flutter/Flutter-Release.xcconfig create mode 100644 books_viewer/macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 books_viewer/macos/Runner.xcodeproj/project.pbxproj create mode 100644 books_viewer/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 books_viewer/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 books_viewer/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 books_viewer/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 books_viewer/macos/Runner/AppDelegate.swift create mode 100644 books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 books_viewer/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 books_viewer/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 books_viewer/macos/Runner/Configs/Debug.xcconfig create mode 100644 books_viewer/macos/Runner/Configs/Release.xcconfig create mode 100644 books_viewer/macos/Runner/Configs/Warnings.xcconfig create mode 100644 books_viewer/macos/Runner/DebugProfile.entitlements create mode 100644 books_viewer/macos/Runner/Info.plist create mode 100644 books_viewer/macos/Runner/MainFlutterWindow.swift create mode 100644 books_viewer/macos/Runner/Release.entitlements create mode 100644 books_viewer/macos/RunnerTests/RunnerTests.swift create mode 100644 books_viewer/pubspec.yaml create mode 100644 books_viewer/test/widget_test.dart create mode 100644 books_viewer/web/favicon.png create mode 100644 books_viewer/web/icons/Icon-192.png create mode 100644 books_viewer/web/icons/Icon-512.png create mode 100644 books_viewer/web/icons/Icon-maskable-192.png create mode 100644 books_viewer/web/icons/Icon-maskable-512.png create mode 100644 books_viewer/web/index.html create mode 100644 books_viewer/web/manifest.json create mode 100644 books_viewer/windows/.gitignore create mode 100644 books_viewer/windows/CMakeLists.txt create mode 100644 books_viewer/windows/flutter/CMakeLists.txt create mode 100644 books_viewer/windows/flutter/generated_plugin_registrant.cc create mode 100644 books_viewer/windows/flutter/generated_plugin_registrant.h create mode 100644 books_viewer/windows/flutter/generated_plugins.cmake create mode 100644 books_viewer/windows/runner/CMakeLists.txt create mode 100644 books_viewer/windows/runner/Runner.rc create mode 100644 books_viewer/windows/runner/flutter_window.cpp create mode 100644 books_viewer/windows/runner/flutter_window.h create mode 100644 books_viewer/windows/runner/main.cpp create mode 100644 books_viewer/windows/runner/resource.h create mode 100644 books_viewer/windows/runner/resources/app_icon.ico create mode 100644 books_viewer/windows/runner/runner.exe.manifest create mode 100644 books_viewer/windows/runner/utils.cpp create mode 100644 books_viewer/windows/runner/utils.h create mode 100644 books_viewer/windows/runner/win32_window.cpp create mode 100644 books_viewer/windows/runner/win32_window.h create mode 100644 lojas/google/Icone Maker Book 3-01.png create mode 100644 lojas/google/banner.png create mode 100644 lojas/google/p0.jpeg create mode 100644 lojas/google/p1.jpeg create mode 100644 lojas/google/p2.jpeg create mode 100644 lojas/google/p3.jpeg create mode 100644 lojas/google/p4.jpeg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..661532e --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +backoffice/node_modules/ +api/node_modules/ +books_viewer/build/ +books_viewer/.dart_tool/ +*.lock +*.pdf +*.zip +*.mp4 +*.apk +*.ipa +.idea/ +.vscode/ + diff --git a/api/connector.js b/api/connector.js new file mode 100644 index 0000000..afe9e1f --- /dev/null +++ b/api/connector.js @@ -0,0 +1,57 @@ +const mysql = require('mysql'); + +// Configuração da conexão com o banco de dados +const dbConfig = { + host: '54.94.231.207', + user: 'root', + password: 'maker2018**==', + database: 'makerbook', + multipleStatements: true, +}; + +const db = mysql.createConnection(dbConfig); + +// Conectando ao banco de dados +db.connect(err => { + if (err) { + console.error('Erro ao conectar ao banco de dados: ' + err.stack); + return; + } + console.log('Conectado ao banco de dados com sucesso. ID da conexão: ' + db.threadId); +}); + +function execQuery(query, params, req, res, posFunction = null) { + db.query(query, params, (err, results) => { + if (err) { + console.log("500 - " + new Date().toISOString() + " - " + req.originalUrl); + res.status(500).json({ + status: 500, + results: null, + error: err + }); + } else { + if (posFunction != null) { + posFunction(results, function(newResults) { + console.log("200 - " + new Date().toISOString() + " - " + req.originalUrl); + res.status(200).json({ + status: 200, + results: newResults, + error: err + }); + }) + } + else { + console.log("200 - " + new Date().toISOString() + " - " + req.originalUrl); + res.status(200).json({ + status: 200, + results: results, + error: err + }); + } + } + }); +} + +// Exportar a conexão com o banco de dados +module.exports = db; +module.exports = execQuery; \ No newline at end of file diff --git a/api/controllers/authController.js b/api/controllers/authController.js new file mode 100644 index 0000000..0b3f99a --- /dev/null +++ b/api/controllers/authController.js @@ -0,0 +1,64 @@ +const execQuery = require('../connector'); +const db = require('../connector'); +const express = require('express'); +const fs = require('fs'); +const path = require('path'); +const axios = require('axios'); +const router = express.Router(); + +const routes = function () { + + router.post('/login', async (req, res) => { + const login = req.body[0]; + const query = 'CALL login (?, ?, ?, @success, @role, @userId, @userName, @validated); SELECT @success AS success, @role AS role, @userId as userId, @userName as userName, @validated as validated;'; + + try { + // Faça uma solicitação GET para a API ipify para capturar o IP do cliente + const response = await axios.get('https://api.ipify.org/?format=text'); + const clientIp = response.data; + + // Aqui você pode continuar com sua lógica de login e executar a consulta. + execQuery(query, [login.email, login.password, clientIp], req, res); + + } catch (error) { + console.error('Erro ao obter o IP do cliente:', error); + execQuery(query, [login.email, login.password, req.socket.remoteAddress], req, res); + } + }); + + router.post('/loginBook', async (req, res) => { + const login = req.body; + const query = 'CALL loginBook (?, ?, @success, @userId, @courseId, @courseName, @ext); SELECT @success AS success, @userId as userId, @courseId as courseId, @courseName as courseName, @ext as ext;'; + + try { + const response = await axios.get('https://api.ipify.org/?format=text'); + const clientIp = response.data; + + execQuery(query, [login.accesskey, clientIp], req, res, (results, callback) => { + // Caminho físico do arquivo + const course = results[1][0]; + const bookFile = path.join('/var/www/html/maker_book/materials', `course_${course["courseId"]}${course["ext"]}`); + let modifiedAt = null; + + if (fs.existsSync(bookFile)) { + const stats = fs.statSync(bookFile); + modifiedAt = stats.mtime.toISOString(); // formato compatível com Flutter + } + + // results[1][0] é a SELECT final com os dados que o app espera + if (results[1] && results[1][0]) { + results[1][0].modifiedAt = modifiedAt; + } + callback(results); // continua fluxo padrão + }); + + } catch (error) { + console.error('Erro ao obter o IP do cliente:', error); + execQuery(query, [login.accesskey, req.socket.remoteAddress], req, res); + } + }); + + return router; +} + +module.exports = routes; \ No newline at end of file diff --git a/api/controllers/booksController.js b/api/controllers/booksController.js new file mode 100644 index 0000000..a2bf3f4 --- /dev/null +++ b/api/controllers/booksController.js @@ -0,0 +1,48 @@ +const execQuery = require('../connector'); +const db = require('../connector'); +const express = require('express'); +const router = express.Router(); + +const routes = function () { + + router.get('/list', (req, res) => { + execQuery('SELECT * FROM listbooks;', [], req, res); + }); + + router.get('/listSerials/:idserialslote', (req, res) => { + const idserialslote = req.params.idserialslote; + execQuery('CALL serialsByLote (?);', [idserialslote], req, res); + }); + + router.get('/get/:id', (req, res) => { + const id = req.params.id; + execQuery('CALL getBook (?);', [id], req, res); + }); + + router.post('/create', (req, res) => { + const form = req.body[0]; + const query = 'CALL generateSerialLote (?, ?, ?, ?);'; + execQuery(query, [form.description, form.amount, form.idcourse, form.createdBy], req, res); + }); + + router.post('/update', (req, res) => { + const form = req.body[0]; + const query = 'UPDATE serialslote SET description = ? WHERE id = ?;'; + execQuery(query, [form.description, form.id], req, res); + }); + + router.delete('/delete/:id', (req, res) => { + const id = req.params.id; + execQuery('CALL deleteSerialLote (?);', [id], req, res); + }); + + router.post('/validateBook', (req, res) => { + const form = req.body[0]; + const query = 'CALL validateBook (?, ?);'; + execQuery(query, [form.idserial, form.userName], req, res); + }); + + return router; +} + +module.exports = routes; \ No newline at end of file diff --git a/api/controllers/coursesController.js b/api/controllers/coursesController.js new file mode 100644 index 0000000..4bf8c27 --- /dev/null +++ b/api/controllers/coursesController.js @@ -0,0 +1,82 @@ +const execQuery = require('../connector'); +const express = require('express'); +const router = express.Router(); +const fileUtils = require('../utils/fileUtils'); +const formUtils = require('../utils/formUtils'); +const formidable = require("formidable"); + +const routes = function () { + + router.get('/list', (req, res) => { + execQuery('SELECT * FROM listcourses;', [], req, res); + }); + + router.get('/get/:id', (req, res) => { + const id = req.params.id; + execQuery('SELECT * FROM courses WHERE id = ?;', [id], req, res); + }); + + router.post('/create', (req, res) => { + let body = new formidable.IncomingForm(); + body.maxFileSize = 1024 * 1024 * 1024; + body.parse(req, function (err, fields, files) { + const pdf = files.pdf; + const form = formUtils.normalizarFormulario(fields); + const query = 'INSERT INTO courses (description, enabled, duration, ext) VALUES (?, ?, ?, ?);'; + execQuery( + query, + [form.description, form.enabled, form.duration, ".pdf"], + req, + res, + async (results, callback) => { + const courseId = results["insertId"]; + + if (pdf && pdf.length > 0) { + await fileUtils.salvarPDF(pdf[0], "course_" + courseId); + } + + callback(results); + } + ); + }); + }); + + router.post('/update', (req, res) => { + let body = new formidable.IncomingForm(); + body.maxFileSize = 1024 * 1024 * 1024; + body.parse(req, function (err, fields, files) { + const pdf = files.pdf; + const form = formUtils.normalizarFormulario(fields); + const query = 'UPDATE courses SET description = ?, enabled = ?, duration = ? WHERE id = ?;'; + execQuery( + query, + [form.description, form.enabled, form.duration, form.id], + req, + res, + async (results, callback) => { + const courseId = form.id; + + if (pdf && pdf.length > 0) { + await fileUtils.salvarPDF(pdf[0], "course_" + courseId); + } + + callback(results); + } + ); + }); + }); + + router.delete('/delete/:id', (req, res) => { + const id = req.params.id; + execQuery('DELETE FROM courses WHERE id = ?;', [id], req, res, async (results, callback) => { + const diretorioParaExcluir = './pdfs/course_' + id.toString() + ".pdf"; + await fileUtils.excluirArquivo(diretorioParaExcluir); + + callback(results); + }); + }); + + return router; +} + +module.exports = routes; \ No newline at end of file diff --git a/api/controllers/usersController.js b/api/controllers/usersController.js new file mode 100644 index 0000000..f933ddf --- /dev/null +++ b/api/controllers/usersController.js @@ -0,0 +1,46 @@ +const execQuery = require('../connector'); +const db = require('../connector'); +const express = require('express'); +const router = express.Router(); + +const routes = function () { + + router.get('/listTypes', (req, res) => { + execQuery('SELECT * FROM usertype;', [], req, res); + }); + + router.get('/list', (req, res) => { + execQuery('SELECT * FROM listusers;', [], req, res); + }); + + router.get('/listCourses/:id', (req, res) => { + const id = req.params.id; + execQuery('CALL userCourses (?);', [id], req, res); + }); + + router.get('/get/:id', (req, res) => { + const id = req.params.id; + execQuery('SELECT * FROM users WHERE id = ?;', [id], req, res); + }); + + router.post('/create', (req, res) => { + const form = req.body[0]; + const query = 'INSERT INTO users (idusertype, name, email, password, enabled) VALUES (?, ?, ?, ?, ?);'; + execQuery(query, [form.idusertype, form.name, form.email, form.password, form.enabled], req, res); + }); + + router.post('/update', (req, res) => { + const form = req.body[0]; + const query = 'UPDATE users SET idusertype = ?, name = ?, email = ?, password = ?, enabled = ? WHERE id = ?;'; + execQuery(query, [form.idusertype, form.name, form.email, form.password, form.enabled, form.id], req, res); + }); + + router.delete('/delete/:id', (req, res) => { + const id = req.params.id; + execQuery('DELETE FROM users WHERE id = ?;', [id], req, res); + }); + + return router; +} + +module.exports = routes; \ No newline at end of file diff --git a/api/package-lock.json b/api/package-lock.json new file mode 100644 index 0000000..4e162d9 --- /dev/null +++ b/api/package-lock.json @@ -0,0 +1,2562 @@ +{ + "name": "api", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "api", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "axios": "^1.6.8", + "express": "^4.19.2", + "formidable": "^3.5.1", + "multer": "^1.4.5-lts.1", + "mysql": "^2.18.1", + "mysql2": "^3.9.4", + "pdf2html": "^3.1.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-parallel": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz", + "integrity": "sha512-TDPTwSWW5E4oiFiKmz6RGJ/a80Y91GuLgUYuLd49+XBS75tYo8PNgaT2K/OxuQYqkoI852MDGBorg9OcUSTQ8w==" + }, + "node_modules/array-series": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz", + "integrity": "sha512-L0XlBwfx9QetHOsbLDrE/vh2t018w9462HM3iaFfxRiK83aJjAt/Ja3NMkOW7FICwWTlQBa3ZbL5FKhuQWkDrg==" + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==", + "engines": { + "node": "*" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/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/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==", + "dependencies": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "node_modules/cross-spawn/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formidable": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz", + "integrity": "sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==", + "dependencies": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0" + }, + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gm": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/gm/-/gm-1.25.0.tgz", + "integrity": "sha512-4kKdWXTtgQ4biIo7hZA396HT062nDVVHPjQcurNZ3o/voYN+o5FUC5kOwuORbpExp3XbTJ3SU7iRipiIhQtovw==", + "dependencies": { + "array-parallel": "~0.1.3", + "array-series": "~0.1.5", + "cross-spawn": "^4.0.0", + "debug": "^3.1.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/gm/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/gm/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "engines": { + "node": ">=16.14" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "dependencies": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "dependencies": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mysql/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/mysql/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/mysql/node_modules/sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mysql2": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.4.tgz", + "integrity": "sha512-OEESQuwxMza803knC1YSt7NMuc1BrK9j7gZhCSs2WAyxr1vfiI7QLaLOKTh5c9SWGz98qVyQUbK8/WckevNQhg==", + "dependencies": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/pdf2html": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pdf2html/-/pdf2html-3.1.0.tgz", + "integrity": "sha512-S6d64dwkTOpnMVzn8zq4muycurlvS/UAg6apTqN1Afi7dph/Lwm4uvEVbRAYFNtYsOOlj2IgHYhMztojM179HQ==", + "hasInstallScript": true, + "dependencies": { + "cheerio": "^1.0.0-rc.12", + "debug": "^4.3.4", + "fs-extra": "^11.1.0", + "gm": "^1.25.0", + "lodash.defaults": "^4.2.0", + "urijs": "^1.19.7" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pdf2html/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pdf2html/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/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/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string_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/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/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/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + } + }, + "dependencies": { + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "append-field": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", + "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "array-parallel": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/array-parallel/-/array-parallel-0.1.3.tgz", + "integrity": "sha512-TDPTwSWW5E4oiFiKmz6RGJ/a80Y91GuLgUYuLd49+XBS75tYo8PNgaT2K/OxuQYqkoI852MDGBorg9OcUSTQ8w==" + }, + "array-series": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/array-series/-/array-series-0.1.5.tgz", + "integrity": "sha512-L0XlBwfx9QetHOsbLDrE/vh2t018w9462HM3iaFfxRiK83aJjAt/Ja3NMkOW7FICwWTlQBa3ZbL5FKhuQWkDrg==" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "bignumber.js": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz", + "integrity": "sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==" + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "requires": { + "streamsearch": "^1.1.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + } + }, + "cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "requires": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + } + }, + "cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "requires": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "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" + } + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cross-spawn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", + "integrity": "sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==", + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "requires": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "requires": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==" + }, + "es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "requires": { + "get-intrinsic": "^1.2.4" + } + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + } + }, + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + }, + "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==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.1.tgz", + "integrity": "sha512-WJWKelbRHN41m5dumb0/k8TeAx7Id/y3a+Z7QfhxP/htI9Js5zYaEDtG8uMgG0vM0lOlqnmjE99/kfpOYi/0Og==", + "requires": { + "dezalgo": "^1.0.4", + "hexoid": "^1.0.0", + "once": "^1.4.0" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "requires": { + "is-property": "^1.0.2" + } + }, + "get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + } + }, + "gm": { + "version": "1.25.0", + "resolved": "https://registry.npmjs.org/gm/-/gm-1.25.0.tgz", + "integrity": "sha512-4kKdWXTtgQ4biIo7hZA396HT062nDVVHPjQcurNZ3o/voYN+o5FUC5kOwuORbpExp3XbTJ3SU7iRipiIhQtovw==", + "requires": { + "array-parallel": "~0.1.3", + "array-series": "~0.1.5", + "cross-spawn": "^4.0.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "requires": { + "es-define-property": "^1.0.0" + } + }, + "has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "hexoid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==" + }, + "htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "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==" + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "multer": { + "version": "1.4.5-lts.1", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", + "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "requires": { + "append-field": "^1.0.0", + "busboy": "^1.0.0", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.4", + "object-assign": "^4.1.1", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, + "mysql": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz", + "integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==", + "requires": { + "bignumber.js": "9.0.0", + "readable-stream": "2.3.7", + "safe-buffer": "5.1.2", + "sqlstring": "2.3.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" + } + }, + "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==" + }, + "sqlstring": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", + "integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==" + } + } + }, + "mysql2": { + "version": "3.9.4", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.4.tgz", + "integrity": "sha512-OEESQuwxMza803knC1YSt7NMuc1BrK9j7gZhCSs2WAyxr1vfiI7QLaLOKTh5c9SWGz98qVyQUbK8/WckevNQhg==", + "requires": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "requires": { + "lru-cache": "^7.14.1" + }, + "dependencies": { + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + } + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "requires": { + "boolbase": "^1.0.0" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "requires": { + "entities": "^4.4.0" + } + }, + "parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "requires": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "pdf2html": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pdf2html/-/pdf2html-3.1.0.tgz", + "integrity": "sha512-S6d64dwkTOpnMVzn8zq4muycurlvS/UAg6apTqN1Afi7dph/Lwm4uvEVbRAYFNtYsOOlj2IgHYhMztojM179HQ==", + "requires": { + "cheerio": "^1.0.0-rc.12", + "debug": "^4.3.4", + "fs-extra": "^11.1.0", + "gm": "^1.25.0", + "lodash.defaults": "^4.2.0", + "urijs": "^1.19.7" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "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==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "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==" + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + }, + "dependencies": { + "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-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "requires": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "requires": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + } + }, + "sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + }, + "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" + }, + "dependencies": { + "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==" + } + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "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": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + }, + "universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "urijs": { + "version": "1.19.11", + "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", + "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + } + } +} diff --git a/api/package.json b/api/package.json new file mode 100644 index 0000000..2bcb188 --- /dev/null +++ b/api/package.json @@ -0,0 +1,20 @@ +{ + "name": "api", + "version": "1.0.0", + "description": "", + "main": "server.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node server.js" + }, + "author": "", + "license": "ISC", + "dependencies": { + "axios": "^1.6.8", + "express": "^4.19.2", + "formidable": "^3.5.1", + "multer": "^1.4.5-lts.1", + "mysql": "^2.18.1", + "mysql2": "^3.9.4" + } +} diff --git a/api/server.js b/api/server.js new file mode 100644 index 0000000..4c3ee28 --- /dev/null +++ b/api/server.js @@ -0,0 +1,25 @@ +const express = require('express'); + +const app = express(); +const port = 3035; + +// Middleware para parsear o corpo das requisições JSON +app.use(express.json()); + +// Importar os arquivos de roteamento +const authController = require('./controllers/authController')(); +const booksController = require('./controllers/booksController')(); +const coursesController = require('./controllers/coursesController')(); +const usersController = require('./controllers/usersController')(); + + +// Usar os roteamentos +app.use('/api/auth', authController); +app.use('/api/books', booksController); +app.use('/api/courses', coursesController); +app.use('/api/users', usersController); + + +app.listen(port, () => { + console.log(`Servidor rodando em http://localhost:${port}`); +}); diff --git a/api/utils/fileUtils.js b/api/utils/fileUtils.js new file mode 100644 index 0000000..96f0c86 --- /dev/null +++ b/api/utils/fileUtils.js @@ -0,0 +1,135 @@ +const fs = require('fs'); +const path = require('path'); +const pdf2html = require('pdf2html'); +const { exec } = require('child_process'); + +const diretorioArquivos = '/var/www/html/maker_book'; +//const pathToJar = '/var/www/logicworld_api/node_modules/pdf2html/vendor/tika-app-2.6.0.jar'; + +const salvarPDF = (arquivo, nome) => { + console.log("Salvando arquivo..."); + const novoNome = `${nome}.pdf`; + const diretorioDestino = path.join(diretorioArquivos, `/materials`); + const novoCaminho = path.join(diretorioDestino, novoNome); + + if (!fs.existsSync(diretorioDestino)){ + fs.mkdirSync(diretorioDestino, { recursive: true }); + } + + if (arquivo.filepath) { + try { + fs.renameSync(arquivo.filepath, novoCaminho); + console.log(`PDF salvo em ${novoCaminho}`); + } catch (error) { + console.error(`Erro ao salvar o PDF em ${novoCaminho}:`, error); + } + } else { + console.error(`Tipo de arquivo não suportado ou caminho temporário ausente para ${novoCaminho}`); + } + console.log("PDF salvo com sucesso!"); +}; + +const exibirPDF = (arquivo, res, callback) => { + const caminho = path.join(diretorioArquivos, 'materials', `${arquivo}.pdf`); + console.log(`Carregando PDF de ${caminho}`); + + fs.access(caminho, fs.constants.F_OK, (err) => { + if (err) { + console.error(`Erro ao acessar o arquivo: ${err}`); + return callback(err); + } + + res.setHeader('Content-Type', 'application/pdf'); + res.setHeader('Content-Disposition', 'inline; filename=' + arquivo + '.pdf'); + fs.createReadStream(caminho).pipe(res).on('error', (streamErr) => { + console.error(`Erro ao ler o arquivo: ${streamErr}`); + callback(streamErr); + }); + }); +}; + +async function processarPDF(arquivo) { + try { + const html = await exibirPDF(arquivo); + console.log('HTML:', html); + // Faça algo com o HTML aqui + } catch (err) { + console.error('Falha ao processar PDF:', err); + // Trate o erro aqui + } +} + +const salvarImagem = (imagem, nome, destino) => { + console.log("Salvando imagem..."); + const novoNome = `${nome}.jpg`; + const diretorioDestino = path.join(diretorioArquivos, destino); + const novoCaminho = path.join(diretorioDestino, novoNome); + + if (!fs.existsSync(diretorioDestino)){ + fs.mkdirSync(diretorioDestino, { recursive: true }); + } + + if (imagem.filepath) { + try { + fs.renameSync(imagem.filepath, novoCaminho); + console.log(`Imagem salva em ${novoCaminho}`); + } catch (error) { + console.error(`Erro ao salvar a imagem em ${novoCaminho}:`, error); + } + } else { + console.error(`Tipo de arquivo não suportado ou caminho temporário ausente para ${novoCaminho}`); + } + console.log("Imagens salvas com sucesso!"); +}; + +const salvarImagens = (imagens, destino) => { + console.log("Salvando imagens..."); + imagens.forEach((imagem, index) => { + const novoNome = `${index}.jpg`; + const diretorioDestino = path.join(diretorioArquivos, destino); + const novoCaminho = path.join(diretorioDestino, novoNome); + + if (!fs.existsSync(diretorioDestino)){ + fs.mkdirSync(diretorioDestino, { recursive: true }); + } + + if (imagem.filepath) { + try { + fs.renameSync(imagem.filepath, novoCaminho); + console.log(`Imagem salva em ${novoCaminho}`); + } catch (error) { + console.error(`Erro ao salvar a imagem em ${novoCaminho}:`, error); + } + } else { + console.error(`Tipo de arquivo não suportado ou caminho temporário ausente para ${novoCaminho}`); + } + }); + console.log("Imagens salvas com sucesso!"); +}; + +const excluirArquivo = (caminho) => { + console.log("Excluindo arquivo..."); + const caminhoCompleto = path.join(diretorioArquivos, caminho); + if (fs.existsSync(caminhoCompleto)) { + fs.unlinkSync(caminhoCompleto); + } else { + console.log("Arquivo não encontrado. " + caminhoCompleto); + } +} + +const excluirDiretorioEArquivos = (caminho) => { + const diretorio = path.join(diretorioArquivos, caminho); + if (fs.existsSync(diretorio)) { + fs.readdirSync(diretorio).forEach((arquivo) => { + const caminhoCompleto = path.join(diretorio, arquivo); + excluirArquivo(caminhoCompleto); + }); + + fs.rmdirSync(diretorio); + console.log(`Diretório ${diretorio} e seus arquivos foram excluídos.`); + } else { + console.log("Diretório não encontrado."); + } +}; + +module.exports = { salvarPDF, processarPDF, exibirPDF, salvarImagem, salvarImagens, excluirArquivo, excluirDiretorioEArquivos }; \ No newline at end of file diff --git a/api/utils/formUtils.js b/api/utils/formUtils.js new file mode 100644 index 0000000..9fa0ca5 --- /dev/null +++ b/api/utils/formUtils.js @@ -0,0 +1,19 @@ +const normalizarFormulario = (form) => { + // Percorra todas as chaves no objeto de formulário + for (let key in form) { + // Se o valor da chave for a string "null", substitua por null + if (form[key] == "null") { + form[key] = null; + } + else if (form[key] == true || form[key] == "true") { + form[key] = 1; + } + else if (form[key] == false || form[key] == "false") { + form[key] = 0; + } + } + // Retorne o objeto de formulário modificado + return form; +}; + +module.exports = { normalizarFormulario }; \ No newline at end of file diff --git a/backoffice/.dockerignore b/backoffice/.dockerignore new file mode 100644 index 0000000..0986b6c --- /dev/null +++ b/backoffice/.dockerignore @@ -0,0 +1,8 @@ +* +!.dockerignore +!Dockerfile +!dist/** +!dist-debug/** +!scripts/** +!nginx.conf +!version \ No newline at end of file diff --git a/backoffice/.editorconfig b/backoffice/.editorconfig new file mode 100644 index 0000000..b585a76 --- /dev/null +++ b/backoffice/.editorconfig @@ -0,0 +1,13 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/backoffice/.gitignore b/backoffice/.gitignore new file mode 100644 index 0000000..86d943a --- /dev/null +++ b/backoffice/.gitignore @@ -0,0 +1,46 @@ +# 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 diff --git a/backoffice/.markdownlint.json b/backoffice/.markdownlint.json new file mode 100644 index 0000000..c171e76 --- /dev/null +++ b/backoffice/.markdownlint.json @@ -0,0 +1,4 @@ +{ + "no-duplicate-heading": { "siblings_only": true}, + "line-length": { "line_length": 140 } +} diff --git a/backoffice/.prettierrc.json b/backoffice/.prettierrc.json new file mode 100644 index 0000000..399dadf --- /dev/null +++ b/backoffice/.prettierrc.json @@ -0,0 +1,19 @@ +{ + "arrowParens": "avoid", + "endOfLine": "lf", + "overrides": [ + { + "files": "*.pug", + "options": { + "attributeSeparator": "always", + "parser": "pug" + } + } + ], + "printWidth": 100, + "proseWrap": "preserve", + "semi": true, + "singleQuote": true, + "tabWidth": 4, + "trailingComma": "es5" +} \ No newline at end of file diff --git a/backoffice/.pug-lintrc.json b/backoffice/.pug-lintrc.json new file mode 100644 index 0000000..9b8960d --- /dev/null +++ b/backoffice/.pug-lintrc.json @@ -0,0 +1,6 @@ +{ + "validateAttributeSeparator": { + "multiLineSeparator": ",\n ", + "separator": ", " + } +} \ No newline at end of file diff --git a/backoffice/CHANGELOG.md b/backoffice/CHANGELOG.md new file mode 100644 index 0000000..0bd0132 --- /dev/null +++ b/backoffice/CHANGELOG.md @@ -0,0 +1,49 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +[Glossary](/glossary) + +## [Unreleased] + +## [1.3.0] - 2020-11-18 + +- [Changed] Updated to Angular 11 +- [Changed] Upgraded all dependencies + +## [1.2.0] - 2020-09-18 + +- [Changed] New release process +- [Changed] Upgraded all dependencies + +## [1.1.1] - 2020-04-03 + +- [Changed] Updated dependencies in package.json +- [Changed] TestBed.get -> TestBed.inject (Angular 9 deprecation) +- [Changed] Only import HttpClientModule in appModule + +## [1.1.0] - 2020-02-10 + +- [Added] Document how to use --max-old-space-size +- [Added] Typings folder in `src/typings` +- [Added] `.markdownlint.json` +- [Added] @sbpro/ng - for SBPro Schematics +- [Changed] Updated to Angular 9 +- [Changed] Updated other dependencies +- [Changed] Docker run script to check for running container first. + +## [1.0.0] - 2020-01-13 + +- Initial Release! + +## Gloassary + +- `[Added]` for new features. +- `[Changed]` for changes in existing functionality. +- `[Deprecated]` for soon-to-be removed features. +- `[Removed]` for now removed features. +- `[Fixed]` for any bug fixes. +- `[Security]` in case of vulnerabilities. diff --git a/backoffice/Dockerfile b/backoffice/Dockerfile new file mode 100644 index 0000000..83b4075 --- /dev/null +++ b/backoffice/Dockerfile @@ -0,0 +1,17 @@ +FROM nginx:1.17.6 + +EXPOSE 80 + +RUN echo "deb http://security.debian.org/debian-security stretch/updates main" > /etc/apt/sources.security.only.list +RUN apt-get -y update -o Dir::Etc::SourceList=/etc/apt/sources.security.only.list -o Dir::Etc::Parts=/dev/null +RUN apt-get -y upgrade -o Dir::Etc::SourceList=/etc/apt/sources.security.only.list -o Dir::Etc::Parts=/dev/nulld + +RUN rm /etc/nginx/conf.d/default.conf + +COPY nginx.conf /etc/nginx/nginx.conf +COPY scripts/docker/start-nginx.sh /usr/share/nginx/start-nginx.sh + +COPY dist/sb-admin-angular /usr/share/nginx/html +COPY version /usr/share/nginx/html/assets/version + +ENTRYPOINT ["/usr/share/nginx/start-nginx.sh"] diff --git a/backoffice/LICENSE b/backoffice/LICENSE new file mode 100644 index 0000000..f0d3b0c --- /dev/null +++ b/backoffice/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013-2020 Start Bootstrap LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/backoffice/README.md b/backoffice/README.md new file mode 100644 index 0000000..2dcf8cd --- /dev/null +++ b/backoffice/README.md @@ -0,0 +1,100 @@ +# SB Admin Angular + +SB Admin Angular is a free and open-sourced Bootstrap themed Angular 9 starter project. + +It shares the same project structure and subset of tooling from our professional offering, +[SB Admin Pro Angular](https://themes.startbootstrap.com/sb-admin-pro-angular/), +so much of the [SB Admin Pro Angular Documentation](https://docs.startbootstrap.com/sb-admin-pro-angular/quickstart) is applicable. + +In particular the documentation for [Structure](https://docs.startbootstrap.com/sb-admin-pro-angular/structure-root-level), +and the documentation for [SBPro Schematics](https://docs.startbootstrap.com/sb-admin-pro-angular/development-general#sb-pro-schematics) + +SB Admin Angular comes with a base implementation of navigation and layouts. + +For professionally designed components (including an advanced SideNav), 100% code coverage, +starter cypress tests and more, please consider our professional offering: +[SB Admin Pro Angular](https://themes.startbootstrap.com/sb-admin-pro-angular/) + +## Quick Start + +```bash +git clone git@github.com:startbootstrap/sb-admin-angular.git +cd sb-admin-angular +npm install +npm start +``` + +`npm start` should open a browser window to + +By default angular runs on port 4200. To change this port you can run: + +```bash +# This starts the development server on port 4205, +# but you can use any port you'd like +export PORT=4205 && npm start +``` + +## Tests + +### Unit Tests + +```bash +npm run test +``` + +### e2e + +```bash +npm run e2e +``` + +## Production + +SB Admin Angular come with a production ready Dockerfile and build scripts. + +You can get Docker [here](https://www.docker.com/get-started) + +```bash +npm run docker:build +npm run docker:run +``` + +## Generate Code + +```bash +npm run generate:module -- --path src/modules --name Test +npm run generate:component -- --path src/modules/test/containers --name Test +npm run generate:component -- --path src/modules/test/components --name Test +npm run generate:directive -- --path src/modules/test/directives --name Test +npm run generate:service -- --path src/modules/test/services --name Test +``` + +_Note: Creating a Component and a Container use the same command, +the difference is just the paths and how they are used._ + +### MVCC + +Containers and Components are both Angular Components, but used in different ways. + +Containers should arrange Components. + +Obviously this can become subjective, but MVCC is the paradigm that we subscribe to. + +## Troubleshooting + +### npm start + +If you receive memory issues adjust +`max_old_space_size` in the `ng` command of the `package.json`: + +```json +"ng": "cross-env NODE_OPTIONS=--max_old_space_size=2048 ./node_modules/.bin/ng", +``` + +You can adjust 2048 to any number you need. + +For more information about why you may need `--max_old_space_size` +see [this article](https://medium.com/@ashleydavis75/node-js-memory-limitations-30d3fe2664c0). + +Keep in mind that this project only uses node to build the angular application. +There is no production dependency on node. diff --git a/backoffice/angular.json b/backoffice/angular.json new file mode 100644 index 0000000..4c357e9 --- /dev/null +++ b/backoffice/angular.json @@ -0,0 +1,137 @@ +{ + "$schema": "./node_modules/@angular/cli/lib/config/schema.json", + "version": 1, + "newProjectRoot": "projects", + "projects": { + "maker-book": { + "projectType": "application", + "schematics": { + "@schematics/angular:component": { + "style": "scss" + } + }, + "root": "", + "sourceRoot": "src", + "prefix": "sb", + "architect": { + "build": { + "builder": "@angular-devkit/build-angular:browser", + "options": { + "outputPath": "dist/maker-book", + "index": "src/index.html", + "main": "src/main.ts", + "polyfills": "src/polyfills.ts", + "tsConfig": "tsconfig.app.json", + "aot": false, + "assets": [ + "src/favicon.png", + "src/assets", + { + "glob": "**/*", + "input": "node_modules/ngx-scanner-qrcode/wasm/", + "output": "./assets/wasm/" + } + ], + "styles": [ + "src/styles/styles.scss", + "src/styles/maker_book.scss" + ], + "stylePreprocessorOptions": { + "includePaths": ["src", "./node_modules"] + }, + "scripts": [] + }, + "configurations": { + "production": { + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "namedChunks": false, + "aot": true, + "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": "maker-book:build" + }, + "configurations": { + "production": { + "browserTarget": "maker-book:build:production" + } + } + }, + "extract-i18n": { + "builder": "@angular-devkit/build-angular:extract-i18n", + "options": { + "browserTarget": "maker-book: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.png", "src/assets"], + "styles": [ + "src/styles/styles.scss", + "src/styles/maker_book.scss" + ], + "stylePreprocessorOptions": { + "includePaths": ["src", "./node_modules"] + }, + "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": "maker-book:serve" + }, + "configurations": { + "production": { + "devServerTarget": "maker-book:serve:production" + } + } + } + } + } + }, + "defaultProject": "maker-book" +} diff --git a/backoffice/browserslist b/backoffice/browserslist new file mode 100644 index 0000000..6de098d --- /dev/null +++ b/backoffice/browserslist @@ -0,0 +1,5 @@ +> 0.5% +last 2 versions +Firefox ESR +not dead +not IE 9-11 # For IE 9-11 support, remove 'not'. \ No newline at end of file diff --git a/backoffice/e2e/protractor.conf.js b/backoffice/e2e/protractor.conf.js new file mode 100644 index 0000000..b24f8a3 --- /dev/null +++ b/backoffice/e2e/protractor.conf.js @@ -0,0 +1,30 @@ +// @ts-check +// Protractor configuration file, see link for more information +// https://github.com/angular/protractor/blob/master/lib/config.ts + +const { SpecReporter } = require('jasmine-spec-reporter'); + +/** + * @type { import("protractor").Config } + */ +exports.config = { + allScriptsTimeout: 11000, + specs: ['./src/**/*.e2e-spec.ts'], + capabilities: { + browserName: 'chrome', + }, + directConnect: true, + 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: true } })); + }, +}; diff --git a/backoffice/e2e/src/app.e2e-spec.ts b/backoffice/e2e/src/app.e2e-spec.ts new file mode 100644 index 0000000..639f94b --- /dev/null +++ b/backoffice/e2e/src/app.e2e-spec.ts @@ -0,0 +1,29 @@ +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', () => { + page.navigateTo(); + expect(page.getTitleText()).toEqual('Dashboard'); + }); + + 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/backoffice/e2e/src/app.po.ts b/backoffice/e2e/src/app.po.ts new file mode 100644 index 0000000..7cf7c99 --- /dev/null +++ b/backoffice/e2e/src/app.po.ts @@ -0,0 +1,11 @@ +import { browser, by, element } from 'protractor'; + +export class AppPage { + navigateTo() { + return browser.get(browser.baseUrl) as Promise; + } + + getTitleText() { + return element(by.css('app-root sb-dashboard-head h1')).getText() as Promise; + } +} diff --git a/backoffice/e2e/tsconfig.json b/backoffice/e2e/tsconfig.json new file mode 100644 index 0000000..5baa08a --- /dev/null +++ b/backoffice/e2e/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "outDir": "../out-tsc/e2e", + "module": "commonjs", + "target": "es5", + "types": ["jasmine", "jasminewd2", "node"] + } +} diff --git a/backoffice/karma.conf.js b/backoffice/karma.conf.js new file mode 100644 index 0000000..1a64e16 --- /dev/null +++ b/backoffice/karma.conf.js @@ -0,0 +1,32 @@ +// 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-istanbul-reporter'), + require('@angular-devkit/build-angular/plugins/karma'), + ], + client: { + clearContext: false, // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + dir: require('path').join(__dirname, './coverage/sb-admin-angular'), + reports: ['html', 'lcovonly', 'text-summary'], + fixWebpackSourcePaths: true, + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false, + restartOnFileChange: true, + }); +}; diff --git a/backoffice/nginx.conf b/backoffice/nginx.conf new file mode 100644 index 0000000..ed1a13e --- /dev/null +++ b/backoffice/nginx.conf @@ -0,0 +1,52 @@ +user nginx; +worker_processes 1; + +error_log /var/log/nginx/error.log warn; +pid /var/run/nginx.pid; + +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + keepalive_timeout 65; + sendfile on; + gzip on; + + server { + listen 80; + server_name localhost; + + add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; + + root /usr/share/nginx/html; + + location /_health { + access_log off; + return 200; + } + + location / { + location ~ / { + add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; + + try_files $uri /index.html =404; + } + } + + error_page 500 502 503 504 /50x.html; + location = /50x.html { + root /usr/share/nginx/html; + } + + } +} diff --git a/backoffice/package-lock.json b/backoffice/package-lock.json new file mode 100644 index 0000000..c12f958 --- /dev/null +++ b/backoffice/package-lock.json @@ -0,0 +1,37591 @@ +{ + "name": "maker-book", + "version": "1.3.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "maker-book", + "version": "1.3.0", + "dependencies": { + "@angular/animations": "11.0.1", + "@angular/common": "11.0.1", + "@angular/compiler": "11.0.1", + "@angular/core": "11.0.1", + "@angular/forms": "11.0.1", + "@angular/platform-browser": "11.0.1", + "@angular/platform-browser-dynamic": "11.0.1", + "@angular/router": "11.0.1", + "@fortawesome/angular-fontawesome": "0.8.0", + "@fortawesome/fontawesome-svg-core": "1.2.32", + "@fortawesome/free-brands-svg-icons": "5.15.1", + "@fortawesome/free-regular-svg-icons": "5.15.1", + "@fortawesome/free-solid-svg-icons": "5.15.1", + "@ng-bootstrap/ng-bootstrap": "8.0.0", + "@prettier/plugin-pug": "1.10.1", + "chart.js": "2.9.4", + "crypto-js": "^4.2.0", + "ngx-scanner-qrcode": "^1.2.8", + "object-hash": "2.0.3", + "rxjs": "6.6.3", + "tslib": "2.0.3", + "uuid": "8.3.1", + "webpack-bundle-analyzer": "4.1.0", + "zone.js": "^0.10.3" + }, + "devDependencies": { + "@angular-devkit/build-angular": "0.1100.2", + "@angular/cli": "11.0.2", + "@angular/compiler-cli": "11.0.1", + "@angular/language-service": "11.0.1", + "@inip/static-server": "1.0.1", + "@sbpro/ng": "1.4.2", + "@types/chart.js": "2.9.28", + "@types/jasmine": "3.6.1", + "@types/jasminewd2": "2.0.8", + "@types/node": "14.14.8", + "@types/object-hash": "1.3.4", + "@types/uuid": "8.3.0", + "bootstrap": "4.5.3", + "chokidar": "3.4.3", + "codelyzer": "6.0.1", + "concurrently": "5.3.0", + "cross-env": "7.0.2", + "jasmine-core": "3.6.0", + "jasmine-spec-reporter": "6.0.0", + "karma": "5.2.3", + "karma-chrome-launcher": "3.1.0", + "karma-coverage-istanbul-reporter": "3.0.3", + "karma-jasmine": "4.0.1", + "karma-jasmine-html-reporter": "1.5.4", + "prettier": "2.1.2", + "protractor": "7.0.0", + "pug": "3.0.0", + "pug-lint": "2.6.0", + "shelljs": "0.8.4", + "ts-node": "9.0.0", + "tslint": "6.1.3", + "tslint-plugin-prettier": "2.3.0", + "typescript": "4.0.5" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@angular-devkit/architect": { + "version": "0.1100.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1100.2.tgz", + "integrity": "sha512-wSMMM8eBPol48OtvIyrIq2H9rOIiJmrPEtPbH0BSuPX0B8BckVImeTPzloqxSrpul4tY7Iwx0zwISDEgb59Vbw==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.0.2", + "rxjs": "6.6.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-angular": { + "version": "0.1100.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1100.2.tgz", + "integrity": "sha512-5Qo3DDKggzUJKibNgeyE5mIMFYP0tVebNvMatpbnYnR/U0fUuuQdvNC68s380M5KoOuubfeXr0Js0VFk0mkaow==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1100.2", + "@angular-devkit/build-optimizer": "0.1100.2", + "@angular-devkit/build-webpack": "0.1100.2", + "@angular-devkit/core": "11.0.2", + "@babel/core": "7.12.3", + "@babel/generator": "7.12.1", + "@babel/plugin-transform-runtime": "7.12.1", + "@babel/preset-env": "7.12.1", + "@babel/runtime": "7.12.1", + "@babel/template": "7.10.4", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "11.0.2", + "ansi-colors": "4.1.1", + "autoprefixer": "9.8.6", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.2.1", + "core-js": "3.6.5", + "css-loader": "4.3.0", + "cssnano": "4.1.10", + "file-loader": "6.1.1", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "inquirer": "7.3.3", + "jest-worker": "26.5.0", + "karma-source-map-support": "1.4.0", + "less": "3.12.2", + "less-loader": "7.0.2", + "license-webpack-plugin": "2.3.1", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "1.2.1", + "minimatch": "3.0.4", + "open": "7.3.0", + "ora": "5.1.0", + "parse5-html-rewriting-stream": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.32", + "postcss-import": "12.0.1", + "postcss-loader": "4.0.4", + "raw-loader": "4.0.2", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.32.1", + "rxjs": "6.6.3", + "sass": "1.27.0", + "sass-loader": "10.0.5", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.1.2", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "2.0.0", + "stylus": "0.54.8", + "stylus-loader": "4.1.1", + "terser": "5.3.7", + "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.0", + "webpack-merge": "5.2.0", + "webpack-sources": "2.0.1", + "webpack-subresource-integrity": "1.5.1", + "worker-plugin": "5.0.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^11.0.0 || ^11.0.0-next", + "@angular/localize": "^11.0.0 || ^11.0.0-next", + "karma": "~5.1.0", + "ng-packagr": "^11.0.0 || ^11.0.0-next", + "protractor": "^7.0.0", + "tslint": "^6.1.0", + "typescript": "~4.0.0" + }, + "peerDependenciesMeta": { + "@angular/localize": { + "optional": true + }, + "karma": { + "optional": true + }, + "ng-packagr": { + "optional": true + }, + "protractor": { + "optional": true + }, + "tslint": { + "optional": true + } + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@angular-devkit/build-angular/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": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", + "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@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.1", + "@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.1", + "@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.1", + "@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.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@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.1", + "core-js-compat": "^3.6.2", + "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-env/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/preset-modules": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", + "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 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 6.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-loader/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/@angular-devkit/build-angular/node_modules/babel-loader/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/babel-loader/node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer 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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/node_modules/eventsource": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.2.tgz", + "integrity": "sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "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/@angular-devkit/build-angular/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": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/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": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "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/@angular-devkit/build-angular/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/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": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/node_modules/sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "dependencies": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-angular/node_modules/sockjs/node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-angular/node_modules/webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "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.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/node_modules/webpack/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/webpack/node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@angular-devkit/build-angular/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==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/node_modules/webpack/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/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/@angular-devkit/build-angular/node_modules/websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha512-oBx6ZM1Gs5q2jwZuSN/Qxyy/fbgomV8+vqsmipaPKB/74hjHlKuM07jNmRhn4qa2AdUwsgxrltq+gaPsHgcl0Q==", + "dev": true, + "dependencies": { + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/@angular-devkit/build-angular/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/@angular-devkit/build-optimizer": { + "version": "0.1100.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1100.2.tgz", + "integrity": "sha512-2ZdEeAs0a53g9LDkP5H2mCEPLyk7yd9P7eTepNYvIOz3xJ6W6dB2CqotPMfnHgd4o12cbzCOWrPBxbfo/VnMig==", + "dev": true, + "dependencies": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.3", + "typescript": "4.0.5", + "webpack-sources": "2.0.1" + }, + "bin": { + "build-optimizer": "src/build-optimizer/cli.js" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/build-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/@angular-devkit/build-optimizer/node_modules/typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@angular-devkit/build-webpack": { + "version": "0.1100.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1100.2.tgz", + "integrity": "sha512-XVMtWoxNa3wJLRjJ846Y02PzupdbUizdAtggRu2731RLMvI1KawWlsTURi12MNUnoVQYm9eldiIA/Y1UqeE8mQ==", + "dev": true, + "dependencies": { + "@angular-devkit/architect": "0.1100.2", + "@angular-devkit/core": "11.0.2", + "rxjs": "6.6.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "webpack": "^4.6.0", + "webpack-dev-server": "^3.1.4" + } + }, + "node_modules/@angular-devkit/core": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.0.2.tgz", + "integrity": "sha512-vUmmUNmNM9oRcDmt0PunU/ayglo0apq4pGL9Z5jj6alf2WwEiTcGHjyuZSDIO9MOLi41519jp3mDx79qXvvyww==", + "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", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular-devkit/core/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/@angular-devkit/schematics": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.0.2.tgz", + "integrity": "sha512-unNewc+Y9ofrdKxXNoSHKUL6wvV8Vgh2nJMTLI1VAw8nfqgWphI+s5XwbVzog65nhZ10xJeaUm9u5R8pxLDpQg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.0.2", + "ora": "5.1.0", + "rxjs": "6.6.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/animations": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-11.0.1.tgz", + "integrity": "sha512-RS2ZsO3yidn/dMAllR+V0EX5BOQLQDi5s2kvd4wANHYAkU/yVXWKl09nbe8LTwLVH+iOYX7AAcAUUokQPEEHxQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "11.0.1" + } + }, + "node_modules/@angular/cli": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-11.0.2.tgz", + "integrity": "sha512-mebt4ikwXD3gsbHRxKCpn83yW3UVnhiVDEpSXljs1YxscZ1X1dXrxb2g6LdAJwVp9xY5ERqRQeZM7eChqLTrvg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@angular-devkit/architect": "0.1100.2", + "@angular-devkit/core": "11.0.2", + "@angular-devkit/schematics": "11.0.2", + "@schematics/angular": "11.0.2", + "@schematics/update": "0.1100.2", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.2.0", + "ini": "1.3.5", + "inquirer": "7.3.3", + "npm-package-arg": "8.1.0", + "npm-pick-manifest": "6.1.0", + "open": "7.3.0", + "pacote": "9.5.12", + "resolve": "1.18.1", + "rimraf": "3.0.2", + "semver": "7.3.2", + "symbol-observable": "2.0.3", + "universal-analytics": "0.4.23", + "uuid": "8.3.1" + }, + "bin": { + "ng": "bin/ng" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@angular/cli/node_modules/debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@angular/cli/node_modules/resolve": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@angular/cli/node_modules/uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@angular/common": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-11.0.1.tgz", + "integrity": "sha512-OXUmCQJzhBRzGPMcnUEoAgiGFtury5uycUg3RJB5ush3sdUpItqYZlPc5tG5fHvtMVufIN3o6DrlcTbIomunPQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/core": "11.0.1", + "rxjs": "^6.5.3" + } + }, + "node_modules/@angular/compiler": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-11.0.1.tgz", + "integrity": "sha512-96IT7zZPQ4JQGYxknj8XyJxStS6feoR5L8K6dKREDzmSUt3fP1nzZe/pDdfrMvUiiwWx73yPpKJXYNaxNbIWMA==", + "dependencies": { + "tslib": "^2.0.0" + } + }, + "node_modules/@angular/compiler-cli": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-11.0.1.tgz", + "integrity": "sha512-+MGZ3pFytjbfbwCAWQ0aTscfaTpR0F5++R3DP0yroAWYnjWS/ngTNKZ0SZQh+0F3+6V5xBM6YJYD05Qu9nDDRw==", + "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": "15.3.0" + }, + "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.0.1", + "typescript": ">=4.0 <4.1" + } + }, + "node_modules/@angular/compiler-cli/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/@angular/compiler-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/@angular/compiler-cli/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/@angular/compiler-cli/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/@angular/compiler-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/@angular/compiler-cli/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/@angular/compiler-cli/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/@angular/compiler-cli/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/@angular/compiler-cli/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/@angular/compiler-cli/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/@angular/compiler-cli/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/@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/compiler-cli/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "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/@angular/compiler-cli/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/@angular/compiler-cli/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/@angular/compiler-cli/node_modules/yargs": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz", + "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==", + "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.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@angular/compiler-cli/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/@angular/core": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-11.0.1.tgz", + "integrity": "sha512-8Xd1YNHPvi32q8+RxEbruQfKGBenucJ2EGBky7108F3kGcnDjm9u+zqdwWjm0ww6VeYh6OsvCnXt303jpX6C4Q==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "rxjs": "^6.5.3", + "zone.js": "~0.10.3" + } + }, + "node_modules/@angular/forms": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-11.0.1.tgz", + "integrity": "sha512-XbnWP61WjCge8FOWrqxbjtHi+NML04Fy/BJOPX0dmaV2433sH6gqPK61UguOuEJmJ4m2Lo7U32PLELbRjC6hTw==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "11.0.1", + "@angular/core": "11.0.1", + "@angular/platform-browser": "11.0.1", + "rxjs": "^6.5.3" + } + }, + "node_modules/@angular/language-service": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-11.0.1.tgz", + "integrity": "sha512-8POlwuyDo5iSVuUFnx24cUZ+x8thzTZg0SFwggs3nNUp+3FH1Dw8UqHJdzIaqGEX9IyKGH56mQXd0W2i8nV82Q==", + "dev": true + }, + "node_modules/@angular/platform-browser": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-11.0.1.tgz", + "integrity": "sha512-PlHo9ZFgQriB6Wjuq8+4GIgZtNyP5PLPXRezzVe95+ZjmYD0jYD0Ha62uhIBJ8fYfQS5I1a45yFOJQaa0IrJqA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/animations": "11.0.1", + "@angular/common": "11.0.1", + "@angular/core": "11.0.1" + }, + "peerDependenciesMeta": { + "@angular/animations": { + "optional": true + } + } + }, + "node_modules/@angular/platform-browser-dynamic": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.0.1.tgz", + "integrity": "sha512-B4G2YsbOCMNLQGdKiyl1yzApD/XjQazKcjTPwf0RAhH9TjoZx917mMTqsCU0m90KLY0VW5YGfjRDDDo/jJeiQA==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "11.0.1", + "@angular/compiler": "11.0.1", + "@angular/core": "11.0.1", + "@angular/platform-browser": "11.0.1" + } + }, + "node_modules/@angular/router": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-11.0.1.tgz", + "integrity": "sha512-JSGFPCIqDEKwMf5jCRx9atUz/Ojo+x+9XV1Bm/BRzr9+DdQ/h62b/WbGGSRTa8LL01Ts5LLdBRtzMEPUMFLMOg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "11.0.1", + "@angular/core": "11.0.1", + "@angular/platform-browser": "11.0.1", + "rxjs": "^6.5.3" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", + "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.12.1", + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/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/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/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/@babel/helper-create-class-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name/node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function/node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers/node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "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-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-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.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties/node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", + "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", + "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@dsherret/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-H2R13IvZdM6gei2vOGSzF7HdMyw=", + "dev": true, + "dependencies": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@fortawesome/angular-fontawesome": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.8.0.tgz", + "integrity": "sha512-ujZoqMPlz6RG1SmnvNsDAwea7Zq7jf88eRbsM6ErgK1wUYeT6ePIwmRemaoCyFJsekKjBPSVtEDBtowjf0q9DA==", + "dependencies": { + "tslib": "^2.0.3" + }, + "peerDependencies": { + "@angular/core": "^11.0.0", + "@fortawesome/fontawesome-svg-core": "^1.2.27" + } + }, + "node_modules/@fortawesome/fontawesome-common-types": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz", + "integrity": "sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w==", + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/fontawesome-svg-core": { + "version": "1.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz", + "integrity": "sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-brands-svg-icons": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.15.1.tgz", + "integrity": "sha512-pkTZIWn7iuliCCgV+huDfZmZb2UjslalXGDA2PcqOVUYJmYL11y6ooFiMJkJvUZu+xgAc1gZgQe+Px12mZF0CA==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-regular-svg-icons": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.1.tgz", + "integrity": "sha512-eD9NWFy89e7SVVtrLedJUxIpCBGhd4x7s7dhesokjyo1Tw62daqN5UcuAGu1NrepLLq1IeAYUVfWwnOjZ/j3HA==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@fortawesome/free-solid-svg-icons": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz", + "integrity": "sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg==", + "hasInstallScript": true, + "dependencies": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@inip/static-server": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@inip/static-server/-/static-server-1.0.1.tgz", + "integrity": "sha512-FTkTeA3SsehID31OVQ0Zdqraru5kJdJ09S9LU5uawoymMaPOkahHFyfnLol16T6U3QGoJ+hMCPDuMOk0jtsBog==", + "dev": true, + "dependencies": { + "mime-types": "2.1.24" + }, + "bin": { + "static-server": "index.js" + } + }, + "node_modules/@inip/static-server/node_modules/mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@inip/static-server/node_modules/mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "dependencies": { + "mime-db": "1.40.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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/@ng-bootstrap/ng-bootstrap": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-8.0.0.tgz", + "integrity": "sha512-v77Gfd8xHH+exq0WqIqVRlxbUEHdA/2+RUJenUP2IDTQN9E1rWl7O461/kosr+0XPuxPArHQJxhh/WsCYckcNg==", + "dependencies": { + "tslib": "^2.0.0" + }, + "peerDependencies": { + "@angular/common": "^10.0.0", + "@angular/core": "^10.0.0", + "@angular/forms": "^10.0.0", + "@angular/localize": "^10.0.0", + "rxjs": "^6.5.5" + } + }, + "node_modules/@ngtools/webpack": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-11.0.2.tgz", + "integrity": "sha512-GbNP6HMBVoee2CkYW/pknprFCeiOLz4FGE06yr4m0700c1i6wuX7AzyHfBcLGAIP6nVblNOT3eh5M41b3cDf8g==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.0.2", + "enhanced-resolve": "5.3.1", + "webpack-sources": "2.0.1" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + }, + "peerDependencies": { + "@angular/compiler-cli": "^11.0.0 || ^11.0.0-next", + "typescript": "~4.0.0", + "webpack": "^4.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "dependencies": { + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/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/@prettier/plugin-pug": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@prettier/plugin-pug/-/plugin-pug-1.10.1.tgz", + "integrity": "sha512-HyX0FN8pGdumKS1eiVJ8jbYh8bx2DdbvBOpuKf4+SNP1Z8OFDZorl/q4ShH7oCqMAnFj2kFCpZkuIOkD6gZv7Q==", + "dependencies": { + "pug-lexer": "^5.0.0" + }, + "peerDependencies": { + "prettier": "^2.0.0" + } + }, + "node_modules/@prettier/plugin-pug/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/@prettier/plugin-pug/node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/@prettier/plugin-pug/node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" + }, + "node_modules/@prettier/plugin-pug/node_modules/pug-lexer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.0.tgz", + "integrity": "sha512-52xMk8nNpuyQ/M2wjZBN5gXQLIylaGkAoTk5Y1pBhVqaopaoj8Z0iVzpbFZAqitL4RHNVDZRnJDsqEYe99Ti0A==", + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/@sbpro/ng": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@sbpro/ng/-/ng-1.4.2.tgz", + "integrity": "sha512-lO1V0/vr5YVtha6DqZkT6mwVZ9yclGby8+uMyPP8ndjXzB5ohQUQ7lDUoXHZlQLMykL9CltvvktkiknlYGgV4g==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "9.1.7", + "@angular-devkit/schematics": "9.1.7", + "chalk": "4.1.0", + "change-case": "4.1.1", + "commander": "5.1.0", + "shelljs": "0.8.4", + "ts-morph": "7.1.1" + }, + "bin": { + "templatizer": "dist/templatizer/index.js" + } + }, + "node_modules/@sbpro/ng/node_modules/@angular-devkit/core": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.7.tgz", + "integrity": "sha512-guvolu9Cl+qYMTtedLZD9wCqustJjdqzJ2psD2C1Sr1LrX9T0mprmDldR/YnhsitThveJEb6sM/0EvqWxoSvKw==", + "dev": true, + "dependencies": { + "ajv": "6.12.0", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.4", + "source-map": "0.7.3" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sbpro/ng/node_modules/@angular-devkit/schematics": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.7.tgz", + "integrity": "sha512-oeHPJePBcPp/bd94jHQeFUnft93PGF5iJiKV9szxqS8WWC5OMZ5eK7icRY0PwvLyfenspAZxdZcNaqJqPMul5A==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "9.1.7", + "ora": "4.0.3", + "rxjs": "6.5.4" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@sbpro/ng/node_modules/ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "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" + } + }, + "node_modules/@sbpro/ng/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/@sbpro/ng/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/@sbpro/ng/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/@sbpro/ng/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/@sbpro/ng/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@sbpro/ng/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/@sbpro/ng/node_modules/log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sbpro/ng/node_modules/log-symbols/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/@sbpro/ng/node_modules/log-symbols/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/@sbpro/ng/node_modules/log-symbols/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/@sbpro/ng/node_modules/log-symbols/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/@sbpro/ng/node_modules/log-symbols/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/@sbpro/ng/node_modules/log-symbols/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/@sbpro/ng/node_modules/ora": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.3.tgz", + "integrity": "sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sbpro/ng/node_modules/ora/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sbpro/ng/node_modules/rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/@sbpro/ng/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/@sbpro/ng/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/@sbpro/ng/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/@schematics/angular": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-11.0.2.tgz", + "integrity": "sha512-tUIuCYJUzHYuiXGJ2KCuwxMocS56kPHaM8+neVYWwWbOxKzLZXv80gMm/pIWxrqUDCkIUi3yb4ienudFhgQLYg==", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.0.2", + "@angular-devkit/schematics": "11.0.2", + "jsonc-parser": "2.3.1" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@schematics/update": { + "version": "0.1100.2", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1100.2.tgz", + "integrity": "sha512-pETCmQylIQ7RM+8uqDkI3KfOaX5H7nuzmMXby28zdLPMZniYti0gJxieiVFhvdz2Ot2Axj0hznfmraFgC9mQMw==", + "deprecated": "This was an internal-only Angular package up through Angular v11 which is no longer used or maintained. Upgrade Angular to v12+ to remove this dependency.", + "dev": true, + "dependencies": { + "@angular-devkit/core": "11.0.2", + "@angular-devkit/schematics": "11.0.2", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "npm-package-arg": "^8.0.0", + "pacote": "9.5.12", + "semver": "7.3.2", + "semver-intersect": "1.4.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 6.11.0", + "yarn": ">= 1.13.0" + } + }, + "node_modules/@ts-morph/common": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.5.2.tgz", + "integrity": "sha512-eLmfYV6u6gUgHrB9QV9lpuWg3cD60mhXdv0jvM5exWR/Cor8HG+GziFIj2hPEWHJknqzuU4meZd8DTqIzZfDRQ==", + "dev": true, + "dependencies": { + "@dsherret/to-absolute-glob": "^2.0.2", + "fast-glob": "^3.2.2", + "fs-extra": "^9.0.0", + "is-negated-glob": "^1.0.0", + "multimatch": "^4.0.0", + "typescript": "~3.9.7" + } + }, + "node_modules/@ts-morph/common/node_modules/fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ts-morph/common/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@ts-morph/common/node_modules/jsonfile/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@ts-morph/common/node_modules/typescript": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/@ts-morph/common/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@types/babel-types": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", + "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==", + "dev": true + }, + "node_modules/@types/babylon": { + "version": "6.16.5", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", + "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", + "dev": true, + "dependencies": { + "@types/babel-types": "*" + } + }, + "node_modules/@types/chart.js": { + "version": "2.9.28", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.28.tgz", + "integrity": "sha512-9YYhsxRngRJb0dkuaU5BezkF+zvvVHnwdRw+rtlahtFb4zqNf9YSgWsOq+dLYeh0fqsWmHUYLR64eNigh02F+w==", + "dev": true, + "dependencies": { + "moment": "^2.10.2" + } + }, + "node_modules/@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "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/html-minifier-terser": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@types/jasmine": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.1.tgz", + "integrity": "sha512-eeSCVhBsgwHNS1FmaMu4zrLxfykCTWJMLFZv7lmyrZQjw7foUUXoPu4GukSN9v7JvUw7X+/aDH3kCaymirBSTg==", + "dev": true + }, + "node_modules/@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "dependencies": { + "@types/jasmine": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "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": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", + "dev": true + }, + "node_modules/@types/object-hash": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz", + "integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==", + "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": "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/@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/tapable": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz", + "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@types/uglify-js": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", + "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/@types/uglify-js/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, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==", + "dev": true + }, + "node_modules/@types/webpack": { + "version": "4.41.38", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.38.tgz", + "integrity": "sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.0.0", + "source-map": "^0.6.0" + } + }, + "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/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, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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==", + "deprecated": "Use your platform's native atob() and btoa() methods instead", + "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==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.0.0.tgz", + "integrity": "sha512-oZRad/3SMOI/pxbbmqyurIx7jHw1wZDcR9G44L8pUVFEomX/0dH89SrM1KaDXuv1NpzAXz6Op/Xu/Qd5XXzdEA==", + "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/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/after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "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/agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 4.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.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "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/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/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": "sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "peer": true, + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "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/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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/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/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-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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-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/arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "node_modules/arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "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-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true + }, + "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-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/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "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==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + }, + "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.10.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", + "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", + "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-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "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==", + "dev": true + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babel-types/node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.9.6" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true, + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "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/base/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==", + "deprecated": "Please upgrade to v1.0.1", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/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==", + "deprecated": "Please upgrade to v1.0.1", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/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/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==", + "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/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/better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "dependencies": { + "callsite": "1.0.0" + }, + "engines": { + "node": "*" + } + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "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/blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "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.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "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==", + "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/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "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/bootstrap": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/bootstrap" + }, + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.16.1" + } + }, + "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/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "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-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/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/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.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/browserstack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.0.tgz", + "integrity": "sha512-HJDJ0TSlmkwnt9RZ+v5gFpa1XZTBYTj0ywvLwJ3241J7vMw2jAsGNVhKHtmCOyg+VxeLZyaibO9UL71AsUeDIw==", + "dev": true, + "dependencies": { + "https-proxy-agent": "^2.2.1" + } + }, + "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/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==", + "dev": true + }, + "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/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/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/cacache/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/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/call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + }, + "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/callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "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.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/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/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.30001632", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz", + "integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/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/capital-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.3.tgz", + "integrity": "sha512-OlUSJpUr7SY0uZFOxcwnDOU7/MpHlKTZx2mqnDYQFrDudXLFm0JJ9wr/l4csB+rh2Ug0OPuoSO53PqiZBqno9A==", + "dev": true, + "dependencies": { + "no-case": "^3.0.3", + "tslib": "^1.10.0", + "upper-case-first": "^2.0.1" + } + }, + "node_modules/capital-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/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/change-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.1.tgz", + "integrity": "sha512-qRlUWn/hXnX1R1LBDF/RelJLiqNjKjUqlmuBVSEIyye8kq49CXqkZWKmi8XeUAdDXWFOcGLUMZ+aHn3Q5lzUXw==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.1", + "capital-case": "^1.0.3", + "constant-case": "^3.0.3", + "dot-case": "^3.0.3", + "header-case": "^2.0.3", + "no-case": "^3.0.3", + "param-case": "^3.0.3", + "pascal-case": "^3.1.1", + "path-case": "^3.0.3", + "sentence-case": "^3.0.3", + "snake-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "node_modules/change-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/character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "dependencies": { + "is-regex": "^1.0.3" + } + }, + "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/chart.js": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz", + "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==", + "dependencies": { + "chartjs-color": "^2.1.0", + "moment": "^2.10.2" + } + }, + "node_modules/chartjs-color": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", + "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", + "dependencies": { + "chartjs-color-string": "^0.6.0", + "color-convert": "^1.9.3" + } + }, + "node_modules/chartjs-color-string": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", + "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", + "dependencies": { + "color-name": "^1.0.0" + } + }, + "node_modules/chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "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.1.2" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "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/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz", + "integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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": "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/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/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/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/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/code-block-writer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz", + "integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==", + "dev": true + }, + "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/@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true, + "peerDependencies": { + "tslib": "^1.10.0" + } + }, + "node_modules/codelyzer/node_modules/@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true, + "peerDependencies": { + "rxjs": "^6.5.3", + "tslib": "^1.10.0", + "zone.js": "~0.10.2" + } + }, + "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/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/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/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==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-convert/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "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==", + "dev": true + }, + "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-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "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/component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "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/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==", + "dev": true, + "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/concurrently": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz", + "integrity": "sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "date-fns": "^2.0.1", + "lodash": "^4.17.15", + "read-pkg": "^4.0.1", + "rxjs": "^6.5.2", + "spawn-command": "^0.0.2-1", + "supports-color": "^6.1.0", + "tree-kill": "^1.2.2", + "yargs": "^13.3.0" + }, + "bin": { + "concurrently": "bin/concurrently.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/concurrently/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/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/constant-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.3.tgz", + "integrity": "sha512-FXtsSnnrFYpzDmvwDGQW+l8XK3GV1coLyBN0eBz16ZUzGaZcT2ANVCJmLeuw2GQgxKHQIe9e0w2dzkSfaRlUmA==", + "dev": true, + "dependencies": { + "no-case": "^3.0.3", + "tslib": "^1.10.0", + "upper-case": "^2.0.1" + } + }, + "node_modules/constant-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/constantinople": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", + "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", + "dev": true, + "dependencies": { + "@types/babel-types": "^7.0.0", + "@types/babylon": "^6.16.2", + "babel-types": "^6.26.0", + "babylon": "^6.18.0" + } + }, + "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==", + "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==", + "engines": { + "node": ">= 0.6" + } + }, + "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==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "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==", + "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=" + }, + "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/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.2.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz", + "integrity": "sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q==", + "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/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/copy-webpack-plugin/node_modules/p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0" + }, + "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=", + "dev": true + }, + "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/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.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "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/cross-env": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "bin": { + "cross-env": "src/bin/cross-env.js", + "cross-env-shell": "src/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=10.14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/cross-env/node_modules/cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cross-env/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-env/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-env/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cross-env/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/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": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, + "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-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-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.3.0.tgz", + "integrity": "sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.1", + "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-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-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-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.3.0.tgz", + "integrity": "sha1-XxrUPi2O77/cME/NOaUhZklD4+s=", + "dev": true, + "engines": [ + "node >= 0.4.0" + ] + }, + "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-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-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/csso": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.1.1.tgz", + "integrity": "sha512-Rvq+e1e0TFB8E8X+8MQjHSY6vtol45s5gxtLI/018UsAn2IBMmwNEZRM/h+HVnAJRHjasLIKKUO3uvoMM28LvA==", + "dev": true, + "dependencies": { + "css-tree": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.1.tgz", + "integrity": "sha512-NVN42M2fjszcUNpDbdkvutgQSlFYsr1z7kqeuCagHnNLBfYor6uP1WL1KrkmdYZ5Y1vTBCIOI/C/+8T98fJ71w==", + "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==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "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/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/date-fns": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.16.1.tgz", + "integrity": "sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ==", + "dev": true, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "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==", + "deprecated": "3.x is no longer supported. Please upgrade to 4.x or higher.", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true, + "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/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==", + "dev": true, + "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/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/defaults/node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "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==", + "dev": true, + "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/define-property/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==", + "deprecated": "Please upgrade to v1.0.1", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/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==", + "deprecated": "Please upgrade to v1.0.1", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/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/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/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": "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/del/node_modules/globby/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/del/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/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/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "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=" + }, + "node_modules/detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "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/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.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "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/doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "utila": "~0.4" + } + }, + "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.0.2", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", + "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==", + "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/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domhandler/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "optional": true, + "peer": 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.3", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", + "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", + "dev": true, + "dependencies": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "node_modules/dot-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/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/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "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/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/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/ejs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==", + "dependencies": { + "jake": "^10.6.1" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.797", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.797.tgz", + "integrity": "sha512-RWMYymqyWwIdCEb7Psag5zyAHirYnB354ZREoF8c5QOHbt8AodF7lwVxGUnu5gzBVjzDo9R3XeTwy7pbvubxGw==", + "dev": true + }, + "node_modules/elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "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/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=", + "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, + "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, + "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": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/engine.io-client": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", + "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + } + }, + "node_modules/engine.io-client/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/engine.io-client/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/engine.io-client/node_modules/parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "node_modules/engine.io-client/node_modules/parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "dependencies": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "node_modules/engine.io/node_modules/cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/engine.io/node_modules/ws": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", + "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/enhanced-resolve": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz", + "integrity": "sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.0.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.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "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.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "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.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract/node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "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-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==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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/eslint-plugin-prettier": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz", + "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" + }, + "engines": { + "node": ">=4.0.0" + }, + "peerDependencies": { + "prettier": ">= 0.11.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==", + "dev": true, + "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==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "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=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "node_modules/events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=12.0.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/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/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==", + "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=" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/express/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + }, + "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/extend-shallow/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/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-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==", + "deprecated": "Please upgrade to v1.0.1", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/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==", + "deprecated": "Please upgrade to v1.0.1", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/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/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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "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/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.8.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "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==", + "deprecated": "This module is no longer supported.", + "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.1.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz", + "integrity": "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==", + "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/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/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/filelist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz", + "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==", + "dependencies": { + "minimatch": "^3.0.4" + } + }, + "node_modules/filesize": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", + "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "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==", + "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==", + "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=" + }, + "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-cache-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/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/find-cache-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir/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/find-cache-dir/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/find-cache-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/find-line-column": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/find-line-column/-/find-line-column-0.5.2.tgz", + "integrity": "sha1-2wAjj/hoVRoYLnShA0FtKVqYyMo=", + "dev": true + }, + "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/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/follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + } + }, + "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=", + "engines": { + "node": ">= 0.6" + } + }, + "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=", + "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/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.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "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-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.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, + "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.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "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": "*" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "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.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "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/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "node_modules/gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dependencies": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "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=", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "dependencies": { + "isarray": "2.0.1" + } + }, + "node_modules/has-binary2/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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/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/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "optional": true, + "peer": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/header-case": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.3.tgz", + "integrity": "sha512-LChe/V32mnUQnTwTxd3aAlNMk8ia9tjCDb/LjYtoMrdAPApxLB+azejUk5ERZIZdIqvinwv6BAUuFXH/tQPdZA==", + "dev": true, + "dependencies": { + "capital-case": "^1.0.3", + "tslib": "^1.10.0" + } + }, + "node_modules/header-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/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.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "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/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.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "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/html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/html-minifier-terser/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-minifier-terser/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, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/html-minifier-terser/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "optional": true, + "peer": 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/html-minifier-terser/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/html-webpack-plugin": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "engines": { + "node": ">=6.9" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/html-webpack-plugin/node_modules/loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/html-webpack-plugin/node_modules/util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "optional": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/htmlparser2/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/htmlparser2/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "optional": true, + "peer": true + }, + "node_modules/htmlparser2/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "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==", + "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=" + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "dependencies": { + "agent-base": "4", + "debug": "3.1.0" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/http-proxy-agent/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/http-proxy-agent/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/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-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": "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/https-proxy-agent/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "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==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">= 6" + } + }, + "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/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-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/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/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "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=", + "dev": true, + "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==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", + "dev": true, + "engines": { + "node": "*" + } + }, + "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-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/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/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/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/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/inquirer/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "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/inquirer/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/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/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "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==", + "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": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "deprecated": "Please upgrade to v0.1.7", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "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-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-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true, + "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.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "deprecated": "Please upgrade to v0.1.5", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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/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==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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/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-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", + "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", + "dev": true, + "dependencies": { + "acorn": "~4.0.2", + "object-assign": "^4.0.1" + } + }, + "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/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": "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/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-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "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-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-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/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/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/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": "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/is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dependencies": { + "has": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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-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==", + "dev": true, + "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-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=", + "dev": true + }, + "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/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/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/istanbul-lib-report/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/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": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/istanbul-lib-source-maps/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/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/jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "dependencies": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jake/node_modules/async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + }, + "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": "6.0.0", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-6.0.0.tgz", + "integrity": "sha512-MvTOVoMxDZAftQYBApIlSfKnGMzi9cj351nXeqtnZTuXffPlbONN31+Es7F+Ke4okUeQ2xISukt4U1npfzLVrQ==", + "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-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.5.0.tgz", + "integrity": "sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug==", + "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/js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": 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.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "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-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-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/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.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "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/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/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "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/jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dev": true, + "dependencies": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "node_modules/jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/karma": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.2.3.tgz", + "integrity": "sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ==", + "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": "^2.3.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "0.7.22", + "yargs": "^15.3.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-istanbul-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/mattlewis92" + } + }, + "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/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/karma/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/karma/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/karma/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/karma/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/karma/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/karma/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/karma/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "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/karma/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/karma/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/karma/node_modules/mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/karma/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/karma/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/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/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "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/karma/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/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/karma/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/karma/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/karma/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/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/less": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz", + "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", + "dev": true, + "dependencies": { + "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", + "native-request": "^1.0.5", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-7.0.2.tgz", + "integrity": "sha512-7MKlgjnkCf63E3Lv6w2FvAEgLMx3d/tNBExITcanAq7ys5U8VPWT3F6xcRjYmdNfkoQ9udoVFb1r2azSiTnD6w==", + "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", + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/less-loader/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/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/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/license-webpack-plugin": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.1.tgz", + "integrity": "sha512-yhqTmlYIEpZWA122lf6E0G8+rkn0AzoQ1OpzUKKs/lXUqG1plmGnwmkuuPlfggzJR5y6DLOdot/Tv00CC51CeQ==", + "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/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/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": "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/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "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.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.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "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/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/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.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", + "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-loglevel?utm_medium=referral&utm_source=npm_fund" + } + }, + "node_modules/lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "dev": true, + "dependencies": { + "tslib": "^1.10.0" + } + }, + "node_modules/lower-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/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": "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/make-dir/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/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": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "dependencies": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + } + }, + "node_modules/make-fetch-happen/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/make-fetch-happen/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/make-fetch-happen/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/make-fetch-happen/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/make-fetch-happen/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/make-fetch-happen/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/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=", + "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/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "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=", + "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.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dependencies": { + "mime-db": "1.44.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/mini-css-extract-plugin": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.2.1.tgz", + "integrity": "sha512-G3yw7/TQaPfkuiR73MDcyiqhyP8SnbmLhUbpC76H+wtQxA6wfKhMCQOCb6wnPK0dQbjORAeOILQqEesg4/wF7A==", + "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/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/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==", + "dev": true + }, + "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-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-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/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/mixin-deep/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/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/mkdirp/node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "node_modules/moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", + "engines": { + "node": "*" + } + }, + "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/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/multimatch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", + "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "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.19.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", + "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", + "dev": true, + "optional": true + }, + "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/native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, + "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==", + "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=", + "dev": true + }, + "node_modules/ngx-scanner-qrcode": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/ngx-scanner-qrcode/-/ngx-scanner-qrcode-1.2.8.tgz", + "integrity": "sha512-66vc4CUEGY57fp/D9F61aLaM+z2gTjbae/G6HQcEYPIBfbSFJIUxEA4HoAvNf50iq89vA7LHDZ4U9Av8EqJ0ww==", + "dependencies": { + "tslib": "^1.9.0" + }, + "peerDependencies": { + "@angular/common": "^6.0.0-rc.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0", + "@angular/core": "^6.0.0-rc.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0" + } + }, + "node_modules/ngx-scanner-qrcode/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/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.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.1", + "tslib": "^1.10.0" + } + }, + "node_modules/no-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/node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "deprecated": "This module is not used anymore, npm uses minipass-fetch for its fetch implementation now", + "dev": true, + "dependencies": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + }, + "engines": { + "node": ">=4" + } + }, + "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-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/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/normalize-package-data/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/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": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "dependencies": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "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": "4.0.7", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", + "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/npm-registry-fetch/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/npm-registry-fetch/node_modules/npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm-registry-fetch/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/npm-registry-fetch/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/npm-registry-fetch/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/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/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/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "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=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "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/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-hash": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", + "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", + "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is/node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is/node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "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==", + "dev": true, + "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.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "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.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "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=", + "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=", + "dev": true, + "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.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", + "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", + "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/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "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/ora": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz", + "integrity": "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.4.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "mute-stream": "0.0.8", + "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-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/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/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/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/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/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-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "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": "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-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/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-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/pacote": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", + "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + } + }, + "node_modules/pacote/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/pacote/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/pacote/node_modules/fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "dependencies": { + "minipass": "^2.6.0" + } + }, + "node_modules/pacote/node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "node_modules/pacote/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/pacote/node_modules/minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "node_modules/pacote/node_modules/minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "dependencies": { + "minipass": "^2.9.0" + } + }, + "node_modules/pacote/node_modules/npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/pacote/node_modules/npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, + "node_modules/pacote/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/pacote/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/pacote/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/pacote/node_modules/tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + }, + "engines": { + "node": ">=4.5" + } + }, + "node_modules/pacote/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/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/param-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", + "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "node_modules/param-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/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-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/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-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/parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "dependencies": { + "better-assert": "~1.0.0" + } + }, + "node_modules/parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "dependencies": { + "better-assert": "~1.0.0" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", + "dev": true, + "dependencies": { + "no-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "node_modules/pascal-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/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.3", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.3.tgz", + "integrity": "sha512-UMFU6UETFpCNWbIWNczshPrnK/7JAXBP2NYw80ojElbQ2+JYxdqWDBkvvqM93u4u6oLmuJ/tPOf2tM8KtXv4eg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "node_modules/path-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/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": "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/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=", + "dev": true, + "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.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-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=" + }, + "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/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "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": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "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": "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/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/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.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "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": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/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-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-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": { + "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-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-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-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-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-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-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-import/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-loader": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.0.4.tgz", + "integrity": "sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw==", + "dev": true, + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "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/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/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.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-loader/node_modules/parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "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-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-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-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-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-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": { + "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-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": { + "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-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-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-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-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "dependencies": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "dependencies": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "dependencies": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "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-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-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": { + "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-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": { + "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-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": { + "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-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": { + "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-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": { + "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-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": { + "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-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": { + "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-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": { + "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-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-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-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-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-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-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-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-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/postcss/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/prettier": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "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==", + "dev": true + }, + "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/promise-retry/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/protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "dependencies": { + "genfun": "^5.0.0" + } + }, + "node_modules/protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", + "deprecated": "We have news to share - Protractor is deprecated and will reach end-of-life by Summer 2023. To learn more and find out about other options please refer to this post on the Angular blog. Thank you for using and contributing to Protractor. https://goo.gle/state-of-e2e-in-angular", + "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/@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/protractor/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/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/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/protractor/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/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/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/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/protractor/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/protractor/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/protractor/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/protractor/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/protractor/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/protractor/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/protractor/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/protractor/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/protractor/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/protractor/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/protractor/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/protractor/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/protractor/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/protractor/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/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/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "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/protractor/node_modules/string-width/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/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/webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "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/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-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "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/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==", + "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.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + }, + "node_modules/pug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.0.tgz", + "integrity": "sha512-inmsJyFBSHZaiGLaguoFgJGViX0If6AcfcElimvwj9perqjDpUpw79UIEDZbWFmoGVidh08aoE+e8tVkjVJPCw==", + "dev": true, + "dependencies": { + "pug-code-gen": "^3.0.0", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.0", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.0", + "pug-strip-comments": "^2.0.0" + } + }, + "node_modules/pug-attrs": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz", + "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==", + "dev": true, + "dependencies": { + "constantinople": "^3.0.1", + "js-stringify": "^1.0.1", + "pug-runtime": "^2.0.5" + } + }, + "node_modules/pug-code-gen": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.1.tgz", + "integrity": "sha512-xJIGvmXTQlkJllq6hqxxjRWcay2F9CU69TuAuiVZgHK0afOhG5txrQOcZyaPHBvSWCU/QQOqEp5XCH94rRZpBQ==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + } + }, + "node_modules/pug-code-gen/node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/pug-code-gen/node_modules/pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "node_modules/pug-code-gen/node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "node_modules/pug-code-gen/node_modules/pug-runtime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.0.tgz", + "integrity": "sha512-GoEPcmQNnaTsePEdVA05bDpY+Op5VLHKayg08AQiqJBWU/yIaywEYv7TetC5dEQS3fzBBoyb2InDcZEg3mPTIA==", + "dev": true + }, + "node_modules/pug-code-gen/node_modules/void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pug-error": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz", + "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==", + "dev": true + }, + "node_modules/pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "dependencies": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + } + }, + "node_modules/pug-filters/node_modules/constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "node_modules/pug-filters/node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "node_modules/pug-lexer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz", + "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==", + "dev": true, + "dependencies": { + "character-parser": "^2.1.1", + "is-expression": "^3.0.0", + "pug-error": "^1.3.3" + } + }, + "node_modules/pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-linker/node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "node_modules/pug-lint": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/pug-lint/-/pug-lint-2.6.0.tgz", + "integrity": "sha512-bCENAUT0grCSlUBIfX1USjpZPQWs5QccxVZoCIT4S+IevTn9NqJyzhrcyq/CFVSCOp9Z+pdwPQIkzdCvZ1pGlQ==", + "dev": true, + "dependencies": { + "acorn": "^4.0.1", + "commander": "^2.9.0", + "css-selector-parser": "^1.1.0", + "find-line-column": "^0.5.2", + "glob": "^7.0.3", + "minimatch": "^3.0.3", + "path-is-absolute": "^1.0.0", + "pug-attrs": "^2.0.3", + "pug-error": "^1.3.2", + "pug-lexer": "^4.0.0", + "resolve": "^1.1.7", + "strip-json-comments": "^2.0.1", + "void-elements": "^2.0.1" + }, + "bin": { + "pug-lint": "bin/pug-lint" + } + }, + "node_modules/pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "node_modules/pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + } + }, + "node_modules/pug-parser/node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "node_modules/pug-runtime": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz", + "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==", + "dev": true + }, + "node_modules/pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "dependencies": { + "pug-error": "^2.0.0" + } + }, + "node_modules/pug-strip-comments/node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "node_modules/pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "dev": true + }, + "node_modules/pug/node_modules/acorn": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/pug/node_modules/is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "node_modules/pug/node_modules/pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "node_modules/pug/node_modules/pug-lexer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.0.tgz", + "integrity": "sha512-52xMk8nNpuyQ/M2wjZBN5gXQLIylaGkAoTk5Y1pBhVqaopaoj8Z0iVzpbFZAqitL4RHNVDZRnJDsqEYe99Ti0A==", + "dev": true, + "dependencies": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "node_modules/pug/node_modules/pug-runtime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.0.tgz", + "integrity": "sha512-GoEPcmQNnaTsePEdVA05bDpY+Op5VLHKayg08AQiqJBWU/yIaywEYv7TetC5dEQS3fzBBoyb2InDcZEg3mPTIA==", + "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.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "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.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/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "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/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==", + "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==", + "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-body/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "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/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/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/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-cache/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/read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "dev": true, + "dependencies": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/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/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "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": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "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==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "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.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "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": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">= 0.10" + } + }, + "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/renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "optional": true, + "peer": true + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "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=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "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/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "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.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/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/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/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.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "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/rfdc": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "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/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.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.32.1.tgz", + "integrity": "sha512-Op2vWTpvK7t6/Qnm1TTh7VjEZZkN8RWgf0DHbkKzQBwNf748YhXbozHVefqpPp/Fuyk/PQPAnYsBxAEtlMvpUw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "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.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true + }, + "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/rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + }, + "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.27.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.27.0.tgz", + "integrity": "sha512-0gcrER56OkzotK/GGwgg4fPrKuiFlPNitO7eUJ18Bs+/NBlofJfMxmxqpqJxjae9vu0Wq8TZzrSyxZal00WDig==", + "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.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.0.5.tgz", + "integrity": "sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w==", + "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/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/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/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "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/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.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "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==", + "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==", + "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=" + }, + "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==" + }, + "node_modules/sentence-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.3.tgz", + "integrity": "sha512-ZPr4dgTcNkEfcGOMFQyDdJrTU9uQO1nb1cjf+nuzb6FxgMDgKddZOM29qEsB7jvsZSMruLRcL2KfM4ypKpa0LA==", + "dev": true, + "dependencies": { + "no-case": "^3.0.3", + "tslib": "^1.10.0", + "upper-case-first": "^2.0.1" + } + }, + "node_modules/sentence-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/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==", + "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/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==" + }, + "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/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/shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "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/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/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.3", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.3.tgz", + "integrity": "sha512-WM1sIXEO+rsAHBKjGf/6R1HBBcgbncKS08d2Aqec/mrDSpU80SiOU41hO7ny6DToHSyrlwTYzQBIK1FPSx4Y3Q==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.3", + "tslib": "^1.10.0" + } + }, + "node_modules/snake-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/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-node/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==", + "deprecated": "Please upgrade to v1.0.1", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/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==", + "deprecated": "Please upgrade to v1.0.1", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/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/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/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/socket.io": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "dev": true, + "dependencies": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + } + }, + "node_modules/socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "node_modules/socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "dependencies": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + } + }, + "node_modules/socket.io-client/node_modules/base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/socket.io-client/node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "node_modules/socket.io-client/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/socket.io-client/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/socket.io-client/node_modules/socket.io-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", + "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", + "dev": true, + "dependencies": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-client/node_modules/socket.io-parser/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/socket.io-client/node_modules/socket.io-parser/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/socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "dependencies": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + } + }, + "node_modules/socket.io-parser/node_modules/component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "node_modules/socket.io-parser/node_modules/isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "peer": true, + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sockjs-client": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz", + "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==", + "dev": true, + "peer": true, + "dependencies": { + "debug": "^3.2.7", + "eventsource": "^2.0.2", + "faye-websocket": "^0.11.4", + "inherits": "^2.0.4", + "url-parse": "^1.5.10" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://tidelift.com/funding/github/npm/sockjs-client" + } + }, + "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, + "peer": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "peer": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "dependencies": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + }, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "dependencies": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "dependencies": { + "es6-promisify": "^5.0.0" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.1.2.tgz", + "integrity": "sha512-bjf6eSENOYBX4JZDfl9vVLNsGAQ6Uz90fLmOazcmMcyDYOBFsGxPNn83jXezWLY9bJsVAo1ObztxPcV8HAbjVA==", + "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/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/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.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==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "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/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.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "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==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "dev": true + }, + "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/spdy-transport/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/speed-measure-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "webpack": "^1 || ^2 || ^3 || ^4" + } + }, + "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/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/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.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "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==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "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/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "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-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-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==", + "deprecated": "2.x is no longer supported. Please upgrade to 3.x or higher.", + "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==", + "deprecated": "2.x is no longer supported. Please upgrade to 4.x or higher.", + "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/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/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/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/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/string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend/node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend/node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart/node_modules/es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart/node_modules/is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/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/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/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-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/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.1.1", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-4.1.1.tgz", + "integrity": "sha512-Vnm7J/nIs/P6swIrdwJW/dflhsCOiFmb1U3PeQ6phRtg1soPLN4uKnnL7AtGIJDe173elbtYIXVzmCyF493CfA==", + "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/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/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/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "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/stylus/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/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==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "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/symbol-observable": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", + "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/tapable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.1.1.tgz", + "integrity": "sha512-Wib1S8m2wdpLbmQz0RBEVosIyvb/ykfKXf3ZIDqvWoMg/zTNm6G/tDSuUM61J1kNCDXWJrLHGSFeMhAG+gAGpQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tar/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/terser": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.7.tgz", + "integrity": "sha512-lJbKdfxWvjpV330U4PBZStCT9h3N9A4zZVA5Y4k9sCWXknrpdyxi1oMsRKLmQ/YDMDxSBKIh88v0SkdhdqX06w==", + "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.0.0 || ^11.0.0 || ^12.0.0 || >=14.0.0" + } + }, + "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/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/terser-webpack-plugin/node_modules/p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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=", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "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/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-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "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-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==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", + "dev": true + }, + "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-morph": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-7.1.1.tgz", + "integrity": "sha512-vzLA3RW6bHNApHtzFA9CzR1VVBsImjKAhg4rMh/VjyNRWIgIGsyX8RIYBqwhR7CNWv40/W5fmdDgdtHRf+Q02w==", + "dev": true, + "dependencies": { + "@dsherret/to-absolute-glob": "^2.0.2", + "@ts-morph/common": "~0.5.0", + "code-block-writer": "^10.1.0" + } + }, + "node_modules/ts-node": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", + "dev": true, + "dependencies": { + "arg": "^4.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/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.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "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-plugin-prettier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslint-plugin-prettier/-/tslint-plugin-prettier-2.3.0.tgz", + "integrity": "sha512-F9e4K03yc9xuvv+A0v1EmjcnDwpz8SpCD8HzqSDe0eyg34cBinwn9JjmnnRrNAs4HdleRQj7qijp+P/JTxt4vA==", + "dev": true, + "dependencies": { + "eslint-plugin-prettier": "^2.2.0", + "lines-and-columns": "^1.1.6", + "tslib": "^1.7.1" + }, + "engines": { + "node": ">= 4" + }, + "peerDependencies": { + "prettier": "^1.9.0 || ^2.0.0", + "tslint": "^5.0.0 || ^6.0.0" + } + }, + "node_modules/tslint-plugin-prettier/node_modules/tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + }, + "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.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "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.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "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==", + "dev": true + }, + "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==", + "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=", + "dev": true + }, + "node_modules/typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.22", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", + "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", + "dev": true, + "engines": { + "node": "*" + } + }, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "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/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==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "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/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "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/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/upper-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.1.tgz", + "integrity": "sha512-laAsbea9SY5osxrv7S99vH9xAaJKrw5Qpdh4ENRLcaxipjKsiaBwiAsxfa8X5mObKNTQPsupSq0J/VIxsSJe3A==", + "dev": true, + "dependencies": { + "tslib": "^1.10.0" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.1.tgz", + "integrity": "sha512-105J8XqQ+9RxW3l9gHZtgve5oaiR9TIwvmZAMAIZWRHe00T21cdvewKORTlOJf/zXW6VukuTshM+HXZNWz7N5w==", + "dev": true, + "dependencies": { + "tslib": "^1.10.0" + } + }, + "node_modules/upper-case-first/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/upper-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/uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "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.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "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=", + "dev": true + }, + "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/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true, + "optional": true, + "peer": 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=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "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=", + "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/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 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer 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": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "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-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/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/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/webpack": { + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "dev": true, + "peer": 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.5.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-bundle-analyzer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.1.0.tgz", + "integrity": "sha512-R3oQaPn7KGJGqnOyuAbdNlH4Nm+w+gvoXQZWqYjgaMnR+vY4Ga8VD5ntfkKa00GarO7LQfOlePvtGvr254Z4Ag==", + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "ejs": "^3.1.5", + "express": "^4.17.1", + "filesize": "^6.1.0", + "gzip-size": "^5.1.1", + "lodash": "^4.17.20", + "mkdirp": "^1.0.4", + "opener": "^1.5.2", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz", + "integrity": "sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "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/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ws": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", + "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/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/mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz", + "integrity": "sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==", + "dev": true, + "peer": true, + "dependencies": { + "ansi-html-community": "0.0.8", + "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/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "peer": 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, + "peer": true, + "dependencies": { + "remove-trailing-separator": "^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, + "peer": 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, + "peer": 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, + "peer": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "peer": 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/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "peer": 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, + "peer": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "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, + "peer": 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, + "peer": true, + "dependencies": { + "is-extglob": "^2.1.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, + "peer": 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, + "peer": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "peer": 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, + "peer": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "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, + "peer": 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/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, + "peer": 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/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, + "peer": 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, + "peer": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "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, + "peer": 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, + "peer": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.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==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/webpack-merge": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.2.0.tgz", + "integrity": "sha512-QBglJBg5+lItm3/Lopv8KDDK01+hjdg2azEwi/4vKJ8ZmGPdtJsTpjtNNOW3a4WiqzXdCATtTudOZJngE7RKkA==", + "dev": true, + "dependencies": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.0.1.tgz", + "integrity": "sha512-A9oYz7ANQBK5EN19rUXbvNgfdfZf5U2gP0769OXsj9CvYkCR6OHOsd6OKyEy4H38GGxpsQPKIL83NC64QY6Xmw==", + "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.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.1.tgz", + "integrity": "sha512-uekbQ93PZ9e7BFB8Hl9cFIVYQyQqiXp2ExKk9Zv+qZfH/zHXHrCFAfw1VW0+NqWbTWrs/HnuDrto3+tiPXh//Q==", + "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/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, + "peer": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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/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, + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "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, + "peer": 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/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "peer": 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, + "peer": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "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, + "peer": 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, + "peer": 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, + "peer": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "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, + "peer": 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/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-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/wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "node_modules/with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + }, + "engines": { + "node": ">= 10.0.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": "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/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/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/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "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/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/xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "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.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "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/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/yargs-parser/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/yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "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/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==" + } + }, + "dependencies": { + "@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@angular-devkit/architect": { + "version": "0.1100.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1100.2.tgz", + "integrity": "sha512-wSMMM8eBPol48OtvIyrIq2H9rOIiJmrPEtPbH0BSuPX0B8BckVImeTPzloqxSrpul4tY7Iwx0zwISDEgb59Vbw==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.0.2", + "rxjs": "6.6.3" + } + }, + "@angular-devkit/build-angular": { + "version": "0.1100.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.1100.2.tgz", + "integrity": "sha512-5Qo3DDKggzUJKibNgeyE5mIMFYP0tVebNvMatpbnYnR/U0fUuuQdvNC68s380M5KoOuubfeXr0Js0VFk0mkaow==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1100.2", + "@angular-devkit/build-optimizer": "0.1100.2", + "@angular-devkit/build-webpack": "0.1100.2", + "@angular-devkit/core": "11.0.2", + "@babel/core": "7.12.3", + "@babel/generator": "7.12.1", + "@babel/plugin-transform-runtime": "7.12.1", + "@babel/preset-env": "7.12.1", + "@babel/runtime": "7.12.1", + "@babel/template": "7.10.4", + "@jsdevtools/coverage-istanbul-loader": "3.0.5", + "@ngtools/webpack": "11.0.2", + "ansi-colors": "4.1.1", + "autoprefixer": "9.8.6", + "babel-loader": "8.1.0", + "browserslist": "^4.9.1", + "cacache": "15.0.5", + "caniuse-lite": "^1.0.30001032", + "circular-dependency-plugin": "5.2.0", + "copy-webpack-plugin": "6.2.1", + "core-js": "3.6.5", + "css-loader": "4.3.0", + "cssnano": "4.1.10", + "file-loader": "6.1.1", + "find-cache-dir": "3.3.1", + "glob": "7.1.6", + "inquirer": "7.3.3", + "jest-worker": "26.5.0", + "karma-source-map-support": "1.4.0", + "less": "3.12.2", + "less-loader": "7.0.2", + "license-webpack-plugin": "2.3.1", + "loader-utils": "2.0.0", + "mini-css-extract-plugin": "1.2.1", + "minimatch": "3.0.4", + "open": "7.3.0", + "ora": "5.1.0", + "parse5-html-rewriting-stream": "6.0.1", + "pnp-webpack-plugin": "1.6.4", + "postcss": "7.0.32", + "postcss-import": "12.0.1", + "postcss-loader": "4.0.4", + "raw-loader": "4.0.2", + "regenerator-runtime": "0.13.7", + "resolve-url-loader": "3.1.2", + "rimraf": "3.0.2", + "rollup": "2.32.1", + "rxjs": "6.6.3", + "sass": "1.27.0", + "sass-loader": "10.0.5", + "semver": "7.3.2", + "source-map": "0.7.3", + "source-map-loader": "1.1.2", + "source-map-support": "0.5.19", + "speed-measure-webpack-plugin": "1.3.3", + "style-loader": "2.0.0", + "stylus": "0.54.8", + "stylus-loader": "4.1.1", + "terser": "5.3.7", + "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.0", + "webpack-merge": "5.2.0", + "webpack-sources": "2.0.1", + "webpack-subresource-integrity": "1.5.1", + "worker-plugin": "5.0.0" + }, + "dependencies": { + "@babel/core": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.3.tgz", + "integrity": "sha512-0qXcZYKZp3/6N2jKYVxZv0aNCsxTSVCiK72DTiTYZAu7sjg73W0/aynWjMbiGd87EQL4WyA8reiJVh92AVla9g==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.1", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.1", + "@babel/parser": "^7.12.3", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + } + } + }, + "@babel/preset-env": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.1.tgz", + "integrity": "sha512-H8kxXmtPaAGT7TyBvSSkoSTUK6RHh61So05SyEbpmr0MCZrsNYn7mGMzzeYoOUCdHzww61k8XBft2TaES+xPLg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.1", + "@babel/helper-compilation-targets": "^7.12.1", + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.1", + "@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.1", + "@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.1", + "@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.1", + "@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.1", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.1", + "@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.1", + "core-js-compat": "^3.6.2", + "semver": "^5.5.0" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "@babel/preset-modules": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6.tgz", + "integrity": "sha512-ID2yj6K/4lKfhuU3+EX4UvNbIt7eACFbHmNUjzA+ep+B5971CknnA/9DEWKbRokfbbtblxxxXFJJrH47UEAMVg==", + "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" + } + }, + "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 + }, + "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": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", + "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "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" + } + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^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": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": 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, + "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" + } + }, + "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" + } + } + } + }, + "eventsource": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.2.tgz", + "integrity": "sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA==", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "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": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": 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": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "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": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "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": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.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": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "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": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "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": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz", + "integrity": "sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + }, + "dependencies": { + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha512-Xhj93RXbMSq8urNCUq4p9l0P6hnySJ/7YNRhYNug0bLOuii7pKO7xQFb5mx9xZXWCar88pLPb805PvUkwrLZpQ==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", + "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "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" + } + } + } + }, + "ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "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" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "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": { + "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": { + "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" + } + }, + "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" + } + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^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" + } + }, + "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 + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "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" + } + }, + "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" + } + } + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz", + "integrity": "sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==", + "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.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.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": { + "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.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha512-oBx6ZM1Gs5q2jwZuSN/Qxyy/fbgomV8+vqsmipaPKB/74hjHlKuM07jNmRhn4qa2AdUwsgxrltq+gaPsHgcl0Q==", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@angular-devkit/build-optimizer": { + "version": "0.1100.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.1100.2.tgz", + "integrity": "sha512-2ZdEeAs0a53g9LDkP5H2mCEPLyk7yd9P7eTepNYvIOz3xJ6W6dB2CqotPMfnHgd4o12cbzCOWrPBxbfo/VnMig==", + "dev": true, + "requires": { + "loader-utils": "2.0.0", + "source-map": "0.7.3", + "tslib": "2.0.3", + "typescript": "4.0.5", + "webpack-sources": "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 + }, + "typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true + } + } + }, + "@angular-devkit/build-webpack": { + "version": "0.1100.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1100.2.tgz", + "integrity": "sha512-XVMtWoxNa3wJLRjJ846Y02PzupdbUizdAtggRu2731RLMvI1KawWlsTURi12MNUnoVQYm9eldiIA/Y1UqeE8mQ==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1100.2", + "@angular-devkit/core": "11.0.2", + "rxjs": "6.6.3" + } + }, + "@angular-devkit/core": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-11.0.2.tgz", + "integrity": "sha512-vUmmUNmNM9oRcDmt0PunU/ayglo0apq4pGL9Z5jj6alf2WwEiTcGHjyuZSDIO9MOLi41519jp3mDx79qXvvyww==", + "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": { + "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" + } + } + } + }, + "@angular-devkit/schematics": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.0.2.tgz", + "integrity": "sha512-unNewc+Y9ofrdKxXNoSHKUL6wvV8Vgh2nJMTLI1VAw8nfqgWphI+s5XwbVzog65nhZ10xJeaUm9u5R8pxLDpQg==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.0.2", + "ora": "5.1.0", + "rxjs": "6.6.3" + } + }, + "@angular/animations": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-11.0.1.tgz", + "integrity": "sha512-RS2ZsO3yidn/dMAllR+V0EX5BOQLQDi5s2kvd4wANHYAkU/yVXWKl09nbe8LTwLVH+iOYX7AAcAUUokQPEEHxQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/cli": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-11.0.2.tgz", + "integrity": "sha512-mebt4ikwXD3gsbHRxKCpn83yW3UVnhiVDEpSXljs1YxscZ1X1dXrxb2g6LdAJwVp9xY5ERqRQeZM7eChqLTrvg==", + "dev": true, + "requires": { + "@angular-devkit/architect": "0.1100.2", + "@angular-devkit/core": "11.0.2", + "@angular-devkit/schematics": "11.0.2", + "@schematics/angular": "11.0.2", + "@schematics/update": "0.1100.2", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.2.0", + "ini": "1.3.5", + "inquirer": "7.3.3", + "npm-package-arg": "8.1.0", + "npm-pick-manifest": "6.1.0", + "open": "7.3.0", + "pacote": "9.5.12", + "resolve": "1.18.1", + "rimraf": "3.0.2", + "semver": "7.3.2", + "symbol-observable": "2.0.3", + "universal-analytics": "0.4.23", + "uuid": "8.3.1" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "resolve": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.18.1.tgz", + "integrity": "sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==", + "dev": true, + "requires": { + "is-core-module": "^2.0.0", + "path-parse": "^1.0.6" + } + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==", + "dev": true + } + } + }, + "@angular/common": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-11.0.1.tgz", + "integrity": "sha512-OXUmCQJzhBRzGPMcnUEoAgiGFtury5uycUg3RJB5ush3sdUpItqYZlPc5tG5fHvtMVufIN3o6DrlcTbIomunPQ==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-11.0.1.tgz", + "integrity": "sha512-96IT7zZPQ4JQGYxknj8XyJxStS6feoR5L8K6dKREDzmSUt3fP1nzZe/pDdfrMvUiiwWx73yPpKJXYNaxNbIWMA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/compiler-cli": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-11.0.1.tgz", + "integrity": "sha512-+MGZ3pFytjbfbwCAWQ0aTscfaTpR0F5++R3DP0yroAWYnjWS/ngTNKZ0SZQh+0F3+6V5xBM6YJYD05Qu9nDDRw==", + "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": "15.3.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" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "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 + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "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" + } + }, + "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" + } + }, + "yargs": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.0.tgz", + "integrity": "sha512-g/QCnmjgOl1YJjGsnUg2SatC7NUYEiLXJqxNOQU9qSpjzGtGXda9b+OKccr1kLTy8BN9yqEyqfq5lxlwdc13TA==", + "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.0" + } + }, + "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" + } + } + } + }, + "@angular/core": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-11.0.1.tgz", + "integrity": "sha512-8Xd1YNHPvi32q8+RxEbruQfKGBenucJ2EGBky7108F3kGcnDjm9u+zqdwWjm0ww6VeYh6OsvCnXt303jpX6C4Q==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/forms": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-11.0.1.tgz", + "integrity": "sha512-XbnWP61WjCge8FOWrqxbjtHi+NML04Fy/BJOPX0dmaV2433sH6gqPK61UguOuEJmJ4m2Lo7U32PLELbRjC6hTw==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/language-service": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-11.0.1.tgz", + "integrity": "sha512-8POlwuyDo5iSVuUFnx24cUZ+x8thzTZg0SFwggs3nNUp+3FH1Dw8UqHJdzIaqGEX9IyKGH56mQXd0W2i8nV82Q==", + "dev": true + }, + "@angular/platform-browser": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-11.0.1.tgz", + "integrity": "sha512-PlHo9ZFgQriB6Wjuq8+4GIgZtNyP5PLPXRezzVe95+ZjmYD0jYD0Ha62uhIBJ8fYfQS5I1a45yFOJQaa0IrJqA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/platform-browser-dynamic": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.0.1.tgz", + "integrity": "sha512-B4G2YsbOCMNLQGdKiyl1yzApD/XjQazKcjTPwf0RAhH9TjoZx917mMTqsCU0m90KLY0VW5YGfjRDDDo/jJeiQA==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@angular/router": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-11.0.1.tgz", + "integrity": "sha512-JSGFPCIqDEKwMf5jCRx9atUz/Ojo+x+9XV1Bm/BRzr9+DdQ/h62b/WbGGSRTa8LL01Ts5LLdBRtzMEPUMFLMOg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "requires": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + } + }, + "@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true + }, + "@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "dependencies": { + "@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.1.tgz", + "integrity": "sha512-DB+6rafIdc9o72Yc3/Ph5h+6hUjeOp66pF0naQBgUFFuPqzQwIlPTm3xZR7YNvduIMtkDIj2t21LSQwnbCrXvg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1", + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "dependencies": { + "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" + } + }, + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "dependencies": { + "semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true + } + } + }, + "@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "dependencies": { + "@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + } + } + } + }, + "@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" + } + }, + "@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" + } + }, + "@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "requires": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7" + } + }, + "@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "dependencies": { + "@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + } + } + } + }, + "@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "requires": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "dependencies": { + "@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + } + } + } + }, + "@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + } + }, + "@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", + "dev": true, + "requires": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz", + "integrity": "sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@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-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-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.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "dependencies": { + "@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + } + } + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.1.tgz", + "integrity": "sha512-Ac/H6G9FEIkS2tXsZjL4RAdS3L3WHxci0usAnz7laPWUmFiGtj7tIASChqKZMHTSQTQY6xDbOq+V1/vIq3QrWg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", + "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + } + }, + "@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "@babel/runtime": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.1.tgz", + "integrity": "sha512-J5AIf3vPj3UwXaAzb5j1xM4WAQDX3EMgemF8rjCP3SoW09LfRKAXQKt6CoVYl230P6iWdRcBbnLDDdnqWxZSCA==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", + "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "requires": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + } + }, + "debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } + } + }, + "@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "requires": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + } + }, + "@dsherret/to-absolute-glob": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@dsherret/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", + "integrity": "sha1-H2R13IvZdM6gei2vOGSzF7HdMyw=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "is-negated-glob": "^1.0.0" + } + }, + "@fortawesome/angular-fontawesome": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@fortawesome/angular-fontawesome/-/angular-fontawesome-0.8.0.tgz", + "integrity": "sha512-ujZoqMPlz6RG1SmnvNsDAwea7Zq7jf88eRbsM6ErgK1wUYeT6ePIwmRemaoCyFJsekKjBPSVtEDBtowjf0q9DA==", + "requires": { + "tslib": "^2.0.3" + } + }, + "@fortawesome/fontawesome-common-types": { + "version": "0.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.32.tgz", + "integrity": "sha512-ux2EDjKMpcdHBVLi/eWZynnPxs0BtFVXJkgHIxXRl+9ZFaHPvYamAfCzeeQFqHRjuJtX90wVnMRaMQAAlctz3w==" + }, + "@fortawesome/fontawesome-svg-core": { + "version": "1.2.32", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-1.2.32.tgz", + "integrity": "sha512-XjqyeLCsR/c/usUpdWcOdVtWFVjPbDFBTQkn2fQRrWhhUoxriQohO2RWDxLyUM8XpD+Zzg5xwJ8gqTYGDLeGaQ==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + } + }, + "@fortawesome/free-brands-svg-icons": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-brands-svg-icons/-/free-brands-svg-icons-5.15.1.tgz", + "integrity": "sha512-pkTZIWn7iuliCCgV+huDfZmZb2UjslalXGDA2PcqOVUYJmYL11y6ooFiMJkJvUZu+xgAc1gZgQe+Px12mZF0CA==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + } + }, + "@fortawesome/free-regular-svg-icons": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-5.15.1.tgz", + "integrity": "sha512-eD9NWFy89e7SVVtrLedJUxIpCBGhd4x7s7dhesokjyo1Tw62daqN5UcuAGu1NrepLLq1IeAYUVfWwnOjZ/j3HA==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + } + }, + "@fortawesome/free-solid-svg-icons": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-5.15.1.tgz", + "integrity": "sha512-EFMuKtzRMNbvjab/SvJBaOOpaqJfdSap/Nl6hst7CgrJxwfORR1drdTV6q1Ib/JVzq4xObdTDcT6sqTaXMqfdg==", + "requires": { + "@fortawesome/fontawesome-common-types": "^0.2.32" + } + }, + "@inip/static-server": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@inip/static-server/-/static-server-1.0.1.tgz", + "integrity": "sha512-FTkTeA3SsehID31OVQ0Zdqraru5kJdJ09S9LU5uawoymMaPOkahHFyfnLol16T6U3QGoJ+hMCPDuMOk0jtsBog==", + "dev": true, + "requires": { + "mime-types": "2.1.24" + }, + "dependencies": { + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", + "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "@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" + } + }, + "@ng-bootstrap/ng-bootstrap": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@ng-bootstrap/ng-bootstrap/-/ng-bootstrap-8.0.0.tgz", + "integrity": "sha512-v77Gfd8xHH+exq0WqIqVRlxbUEHdA/2+RUJenUP2IDTQN9E1rWl7O461/kosr+0XPuxPArHQJxhh/WsCYckcNg==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@ngtools/webpack": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-11.0.2.tgz", + "integrity": "sha512-GbNP6HMBVoee2CkYW/pknprFCeiOLz4FGE06yr4m0700c1i6wuX7AzyHfBcLGAIP6nVblNOT3eh5M41b3cDf8g==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.0.2", + "enhanced-resolve": "5.3.1", + "webpack-sources": "2.0.1" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.3", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.3", + "fastq": "^1.6.0" + } + }, + "@npmcli/move-file": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", + "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "@prettier/plugin-pug": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@prettier/plugin-pug/-/plugin-pug-1.10.1.tgz", + "integrity": "sha512-HyX0FN8pGdumKS1eiVJ8jbYh8bx2DdbvBOpuKf4+SNP1Z8OFDZorl/q4ShH7oCqMAnFj2kFCpZkuIOkD6gZv7Q==", + "requires": { + "pug-lexer": "^5.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "requires": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" + }, + "pug-lexer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.0.tgz", + "integrity": "sha512-52xMk8nNpuyQ/M2wjZBN5gXQLIylaGkAoTk5Y1pBhVqaopaoj8Z0iVzpbFZAqitL4RHNVDZRnJDsqEYe99Ti0A==", + "requires": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + } + } + }, + "@sbpro/ng": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@sbpro/ng/-/ng-1.4.2.tgz", + "integrity": "sha512-lO1V0/vr5YVtha6DqZkT6mwVZ9yclGby8+uMyPP8ndjXzB5ohQUQ7lDUoXHZlQLMykL9CltvvktkiknlYGgV4g==", + "dev": true, + "requires": { + "@angular-devkit/core": "9.1.7", + "@angular-devkit/schematics": "9.1.7", + "chalk": "4.1.0", + "change-case": "4.1.1", + "commander": "5.1.0", + "shelljs": "0.8.4", + "ts-morph": "7.1.1" + }, + "dependencies": { + "@angular-devkit/core": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.7.tgz", + "integrity": "sha512-guvolu9Cl+qYMTtedLZD9wCqustJjdqzJ2psD2C1Sr1LrX9T0mprmDldR/YnhsitThveJEb6sM/0EvqWxoSvKw==", + "dev": true, + "requires": { + "ajv": "6.12.0", + "fast-json-stable-stringify": "2.1.0", + "magic-string": "0.25.7", + "rxjs": "6.5.4", + "source-map": "0.7.3" + } + }, + "@angular-devkit/schematics": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.7.tgz", + "integrity": "sha512-oeHPJePBcPp/bd94jHQeFUnft93PGF5iJiKV9szxqS8WWC5OMZ5eK7icRY0PwvLyfenspAZxdZcNaqJqPMul5A==", + "dev": true, + "requires": { + "@angular-devkit/core": "9.1.7", + "ora": "4.0.3", + "rxjs": "6.5.4" + } + }, + "ajv": { + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", + "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "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" + } + }, + "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" + } + }, + "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" + } + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "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 + }, + "log-symbols": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", + "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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 + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "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" + } + } + } + }, + "ora": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.3.tgz", + "integrity": "sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.2.0", + "is-interactive": "^1.0.0", + "log-symbols": "^3.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + } + } + }, + "rxjs": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "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" + } + }, + "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" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "@schematics/angular": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-11.0.2.tgz", + "integrity": "sha512-tUIuCYJUzHYuiXGJ2KCuwxMocS56kPHaM8+neVYWwWbOxKzLZXv80gMm/pIWxrqUDCkIUi3yb4ienudFhgQLYg==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.0.2", + "@angular-devkit/schematics": "11.0.2", + "jsonc-parser": "2.3.1" + } + }, + "@schematics/update": { + "version": "0.1100.2", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.1100.2.tgz", + "integrity": "sha512-pETCmQylIQ7RM+8uqDkI3KfOaX5H7nuzmMXby28zdLPMZniYti0gJxieiVFhvdz2Ot2Axj0hznfmraFgC9mQMw==", + "dev": true, + "requires": { + "@angular-devkit/core": "11.0.2", + "@angular-devkit/schematics": "11.0.2", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "npm-package-arg": "^8.0.0", + "pacote": "9.5.12", + "semver": "7.3.2", + "semver-intersect": "1.4.0" + } + }, + "@ts-morph/common": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.5.2.tgz", + "integrity": "sha512-eLmfYV6u6gUgHrB9QV9lpuWg3cD60mhXdv0jvM5exWR/Cor8HG+GziFIj2hPEWHJknqzuU4meZd8DTqIzZfDRQ==", + "dev": true, + "requires": { + "@dsherret/to-absolute-glob": "^2.0.2", + "fast-glob": "^3.2.2", + "fs-extra": "^9.0.0", + "is-negated-glob": "^1.0.0", + "multimatch": "^4.0.0", + "typescript": "~3.9.7" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + } + } + }, + "typescript": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } + } + }, + "@types/babel-types": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz", + "integrity": "sha512-dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==", + "dev": true + }, + "@types/babylon": { + "version": "6.16.5", + "resolved": "https://registry.npmjs.org/@types/babylon/-/babylon-6.16.5.tgz", + "integrity": "sha512-xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==", + "dev": true, + "requires": { + "@types/babel-types": "*" + } + }, + "@types/chart.js": { + "version": "2.9.28", + "resolved": "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.28.tgz", + "integrity": "sha512-9YYhsxRngRJb0dkuaU5BezkF+zvvVHnwdRw+rtlahtFb4zqNf9YSgWsOq+dLYeh0fqsWmHUYLR64eNigh02F+w==", + "dev": true, + "requires": { + "moment": "^2.10.2" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "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/html-minifier-terser": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "dev": true, + "optional": true, + "peer": true + }, + "@types/jasmine": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.1.tgz", + "integrity": "sha512-eeSCVhBsgwHNS1FmaMu4zrLxfykCTWJMLFZv7lmyrZQjw7foUUXoPu4GukSN9v7JvUw7X+/aDH3kCaymirBSTg==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", + "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", + "dev": true, + "requires": { + "@types/jasmine": "*" + } + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "@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": "14.14.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.8.tgz", + "integrity": "sha512-z/5Yd59dCKI5kbxauAJgw6dLPzW+TNOItNE00PkpzNwUIEwdj/Lsqwq94H5DdYBX7C13aRA0CY32BK76+neEUA==", + "dev": true + }, + "@types/object-hash": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz", + "integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA==", + "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": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": 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/tapable": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.12.tgz", + "integrity": "sha512-bTHG8fcxEqv1M9+TD14P8ok8hjxoOCkfKc8XXLaaD05kI7ohpeI956jtDOD3XHKBQrlyPughUtzm1jtVhHpA5Q==", + "dev": true, + "optional": true, + "peer": true + }, + "@types/uglify-js": { + "version": "3.17.5", + "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.17.5.tgz", + "integrity": "sha512-TU+fZFBTBcXj/GpDpDaBmgWk/gn96kMZ+uocaFUlV2f8a6WdMzzI44QBCmGcCiYR0Y6ZlNRiyUyKKt5nl/lbzQ==", + "dev": true, + "optional": true, + "peer": 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, + "optional": true, + "peer": true + } + } + }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==", + "dev": true + }, + "@types/webpack": { + "version": "4.41.38", + "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.38.tgz", + "integrity": "sha512-oOW7E931XJU1mVfCnxCVgv8GLFL768pDO5u2Gzk82i8yTIgX6i7cntyZOkZYb/JtYM8252SN9bQp9tgkVDSsRw==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/node": "*", + "@types/tapable": "^1", + "@types/uglify-js": "*", + "@types/webpack-sources": "*", + "anymatch": "^3.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, + "optional": true, + "peer": 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 + } + } + }, + "@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 + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + }, + "acorn-walk": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.0.0.tgz", + "integrity": "sha512-oZRad/3SMOI/pxbbmqyurIx7jHw1wZDcR9G44L8pUVFEomX/0dH89SrM1KaDXuv1NpzAXz6Op/Xu/Qd5XXzdEA==" + }, + "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" + } + }, + "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 + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "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" + } + }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "requires": { + "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.4", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz", + "integrity": "sha512-eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==", + "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": {} + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "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": "sha512-JoAxEa1DfP9m2xfB/y2r/aKcwXNlltr4+0QSBC4TrLfcxyvepX2Pv0t/xpgGV5bGsDzCYV8SzjWgyCW0T9yYbA==", + "dev": true + }, + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "dev": true, + "peer": true + }, + "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": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "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 + }, + "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" + } + }, + "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-differ": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", + "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", + "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-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 + }, + "arraybuffer.slice": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", + "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", + "dev": true + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "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.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "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-never": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", + "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", + "dev": true + }, + "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-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 + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "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==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "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.10.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz", + "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==", + "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-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + } + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + }, + "dependencies": { + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + } + } + }, + "babel-walk": { + "version": "3.0.0-canary-5", + "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", + "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", + "dev": true, + "requires": { + "@babel/types": "^7.9.6" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "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" + } + }, + "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-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-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" + } + } + } + }, + "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==", + "dev": true + }, + "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" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "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.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "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" + } + }, + "blob": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", + "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", + "dev": true + }, + "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.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "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==", + "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": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + } + } + }, + "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 + }, + "bootstrap": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz", + "integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ==", + "dev": true, + "requires": {} + }, + "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" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "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-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": { + "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" + } + }, + "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.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + } + }, + "browserstack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.0.tgz", + "integrity": "sha512-HJDJ0TSlmkwnt9RZ+v5gFpa1XZTBYTj0ywvLwJ3241J7vMw2jAsGNVhKHtmCOyg+VxeLZyaibO9UL71AsUeDIw==", + "dev": true, + "requires": { + "https-proxy-agent": "^2.2.1" + } + }, + "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" + } + }, + "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==", + "dev": true + }, + "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 + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "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" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "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" + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "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" + } + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "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.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 + } + } + }, + "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.30001632", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001632.tgz", + "integrity": "sha512-udx3o7yHJfUxMLkGohMlVHCvFvWmirKh9JAH/d7WOLPetlH+LTL5cocMZ0t7oZx/mdlOWXti97xLZWc8uURRHg==", + "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 + }, + "capital-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.3.tgz", + "integrity": "sha512-OlUSJpUr7SY0uZFOxcwnDOU7/MpHlKTZx2mqnDYQFrDudXLFm0JJ9wr/l4csB+rh2Ug0OPuoSO53PqiZBqno9A==", + "dev": true, + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0", + "upper-case-first": "^2.0.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 + } + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "change-case": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/change-case/-/change-case-4.1.1.tgz", + "integrity": "sha512-qRlUWn/hXnX1R1LBDF/RelJLiqNjKjUqlmuBVSEIyye8kq49CXqkZWKmi8XeUAdDXWFOcGLUMZ+aHn3Q5lzUXw==", + "dev": true, + "requires": { + "camel-case": "^4.1.1", + "capital-case": "^1.0.3", + "constant-case": "^3.0.3", + "dot-case": "^3.0.3", + "header-case": "^2.0.3", + "no-case": "^3.0.3", + "param-case": "^3.0.3", + "pascal-case": "^3.1.1", + "path-case": "^3.0.3", + "sentence-case": "^3.0.3", + "snake-case": "^3.0.3", + "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 + } + } + }, + "character-parser": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", + "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", + "requires": { + "is-regex": "^1.0.3" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "chart.js": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz", + "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==", + "requires": { + "chartjs-color": "^2.1.0", + "moment": "^2.10.2" + } + }, + "chartjs-color": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", + "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", + "requires": { + "chartjs-color-string": "^0.6.0", + "color-convert": "^1.9.3" + } + }, + "chartjs-color-string": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", + "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", + "requires": { + "color-name": "^1.0.0" + } + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.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" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", + "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", + "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" + } + } + } + }, + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "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, + "optional": true, + "peer": true + } + } + }, + "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.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz", + "integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==", + "dev": true + }, + "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": "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" + } + } + } + }, + "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" + } + }, + "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" + } + }, + "code-block-writer": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-10.1.1.tgz", + "integrity": "sha512-67ueh2IRGst/51p0n6FvPrnRjAGHY5F8xdjkgrYE7DDzpJe6qA07RYQ9VcoUeo5ATOjSOiWpSL3SWBRRbempMw==", + "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": { + "@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" + }, + "dependencies": { + "@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true, + "requires": {} + }, + "@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true, + "requires": {} + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "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 + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "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==", + "requires": { + "color-name": "1.1.3" + }, + "dependencies": { + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + } + } + }, + "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==" + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "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==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "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 + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "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": { + "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==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "concurrently": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-5.3.0.tgz", + "integrity": "sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "date-fns": "^2.0.1", + "lodash": "^4.17.15", + "read-pkg": "^4.0.1", + "rxjs": "^6.5.2", + "spawn-command": "^0.0.2-1", + "supports-color": "^6.1.0", + "tree-kill": "^1.2.2", + "yargs": "^13.3.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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 + }, + "constant-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-3.0.3.tgz", + "integrity": "sha512-FXtsSnnrFYpzDmvwDGQW+l8XK3GV1coLyBN0eBz16ZUzGaZcT2ANVCJmLeuw2GQgxKHQIe9e0w2dzkSfaRlUmA==", + "dev": true, + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0", + "upper-case": "^2.0.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 + } + } + }, + "constantinople": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.1.2.tgz", + "integrity": "sha512-yePcBqEFhLOqSBtwYOGGS1exHo/s1xjekXiinh4itpNQGCu4KA1euPh1fg07N2wMITZXQkBz75Ntdt1ctGZouw==", + "dev": true, + "requires": { + "@types/babel-types": "^7.0.0", + "@types/babylon": "^6.16.2", + "babel-types": "^6.26.0", + "babylon": "^6.18.0" + } + }, + "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==", + "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==" + }, + "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==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "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": { + "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.2.1", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.2.1.tgz", + "integrity": "sha512-VH2ZTMIBsx4p++Lmpg77adZ0KUyM5gFR/9cuTrbneNnJlcQXUFvsNariPqq2dq2kV3F2skHiDGPQCyKWy1+U0Q==", + "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": { + "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" + } + }, + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "dev": true, + "requires": { + "p-try": "^2.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 + }, + "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.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "dev": true + }, + "core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dev": true, + "requires": { + "browserslist": "^4.23.0" + } + }, + "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=", + "dev": true + }, + "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" + } + }, + "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.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "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" + } + }, + "cross-env": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz", + "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "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" + } + } + } + }, + "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": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, + "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" + }, + "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" + } + }, + "css-loader": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-4.3.0.tgz", + "integrity": "sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==", + "dev": true, + "requires": { + "camelcase": "^6.0.0", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^2.0.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.3", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.1.0", + "schema-utils": "^2.7.1", + "semver": "^7.3.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" + } + }, + "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-parser": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/css-selector-parser/-/css-selector-parser-1.3.0.tgz", + "integrity": "sha1-XxrUPi2O77/cME/NOaUhZklD4+s=", + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.1.1.tgz", + "integrity": "sha512-Rvq+e1e0TFB8E8X+8MQjHSY6vtol45s5gxtLI/018UsAn2IBMmwNEZRM/h+HVnAJRHjasLIKKUO3uvoMM28LvA==", + "dev": true, + "requires": { + "css-tree": "^1.0.0" + }, + "dependencies": { + "css-tree": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.1.tgz", + "integrity": "sha512-NVN42M2fjszcUNpDbdkvutgQSlFYsr1z7kqeuCagHnNLBfYor6uP1WL1KrkmdYZ5Y1vTBCIOI/C/+8T98fJ71w==", + "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==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "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 + }, + "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" + } + }, + "date-fns": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.16.1.tgz", + "integrity": "sha512-sAJVKx/FqrLYHAQeN7VpJrPhagZc9R4ImZIWYRFZaaohR3KzmuK88touwsSwSVT8Qcbd4zoDsnGfX4GFB4imyQ==", + "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 + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "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 + }, + "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==", + "dev": true, + "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" + } + }, + "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" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "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==", + "dev": true, + "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" + }, + "dependencies": { + "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-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-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" + } + } + } + }, + "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": { + "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": "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" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "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 + }, + "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 + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "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=" + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "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.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "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" + } + }, + "doctypes": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", + "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=", + "dev": true + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "utila": "~0.4" + } + }, + "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.0.2", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", + "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==", + "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 + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "domelementtype": "^2.2.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "optional": true, + "peer": 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.3", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", + "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", + "dev": true, + "requires": { + "no-case": "^3.0.3", + "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 + } + } + }, + "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" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "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" + } + }, + "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" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "ejs": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz", + "integrity": "sha512-dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==", + "requires": { + "jake": "^10.6.1" + } + }, + "electron-to-chromium": { + "version": "1.4.797", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.797.tgz", + "integrity": "sha512-RWMYymqyWwIdCEb7Psag5zyAHirYnB354ZREoF8c5QOHbt8AodF7lwVxGUnu5gzBVjzDo9R3XeTwy7pbvubxGw==", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "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 + }, + "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=" + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dev": 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, + "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": "3.4.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.4.2.tgz", + "integrity": "sha512-b4Q85dFkGw+TqgytGPrGgACRUhsdKc9S9ErRAXpPGy/CXKs4tYoHDkvIRdsseAF7NjfVwjRFIn6KTnbw7LwJZg==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "0.3.1", + "debug": "~4.1.0", + "engine.io-parser": "~2.2.0", + "ws": "^7.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "ws": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", + "dev": true, + "requires": {} + } + } + }, + "engine.io-client": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", + "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "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 + }, + "parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "enhanced-resolve": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.3.1.tgz", + "integrity": "sha512-G1XD3MRGrGfNcf6Hg0LVZG7GIKcYkbfHa5QMxt1HDUTdYoXH0JR1xXyg+MaKLF73E9A27uWNVxvFivNRYeUB6w==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.0.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.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "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.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "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.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "dependencies": { + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "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==", + "dev": true, + "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==", + "dev": true, + "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=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "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-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==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "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=" + }, + "eslint-plugin-prettier": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-2.7.0.tgz", + "integrity": "sha512-CStQYJgALoQBw3FsBzH0VOVDRnJ/ZimUlpLm226U8qgqYJfPOY/CPK6wyRInMxh73HSKg5wyRwdS4BVYYHwokA==", + "dev": true, + "requires": { + "fast-diff": "^1.1.1", + "jest-docblock": "^21.0.0" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-2.0.2.tgz", + "integrity": "sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==", + "dev": true, + "peer": true + }, + "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 + }, + "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" + } + }, + "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==", + "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=" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + } + } + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "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-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-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-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" + } + } + } + }, + "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-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", + "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "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 + }, + "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.8.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz", + "integrity": "sha512-SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.1.1.tgz", + "integrity": "sha512-Klt8C4BjWSXYQAfhpYYkG4qHNTna4toMHEbWrI5IuVoxbU6uiDKeKAP99R8mmbJi3lvewn/jQBOgU4+NS3tDQw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "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" + } + }, + "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 + }, + "filelist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz", + "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "filesize": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", + "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==" + }, + "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==", + "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==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "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" + }, + "dependencies": { + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "find-line-column": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/find-line-column/-/find-line-column-0.5.2.tgz", + "integrity": "sha1-2wAjj/hoVRoYLnShA0FtKVqYyMo=", + "dev": true + }, + "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" + } + }, + "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" + } + }, + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "dev": true + }, + "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=" + }, + "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=" + }, + "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" + } + }, + "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" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, + "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-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.0.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", + "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "dev": true, + "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.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "dev": true, + "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.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "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.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", + "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "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" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "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=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + }, + "dependencies": { + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "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": { + "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" + } + }, + "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" + } + }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "requires": { + "function-bind": "^1.1.2" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "optional": true, + "peer": true + }, + "header-case": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-2.0.3.tgz", + "integrity": "sha512-LChe/V32mnUQnTwTxd3aAlNMk8ia9tjCDb/LjYtoMrdAPApxLB+azejUk5ERZIZdIqvinwv6BAUuFXH/tQPdZA==", + "dev": true, + "requires": { + "capital-case": "^1.0.3", + "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 + } + } + }, + "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.7", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", + "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "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" + } + }, + "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.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "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 + }, + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "dependencies": { + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "optional": true, + "peer": 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, + "peer": true + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "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==", + "dev": true, + "optional": true, + "peer": true + } + } + } + } + }, + "html-webpack-plugin": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.5.2.tgz", + "integrity": "sha512-q5oYdzjKUIPQVjOosjgvCHQOv9Ett9CYYHlgvJeXG0qQvdSojnBq4vAdQBwn1+yGveAwHCoe/rMR86ozX3+c2A==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "@types/html-minifier-terser": "^5.0.0", + "@types/tapable": "^1.0.5", + "@types/webpack": "^4.41.8", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", + "util.promisify": "1.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", + "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "optional": true, + "peer": true + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + }, + "dependencies": { + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "optional": true, + "peer": true + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + } + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "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==", + "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=" + } + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "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": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "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 + } + } + }, + "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-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": "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" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "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==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "dev": true, + "requires": { + "postcss": "^7.0.14" + } + }, + "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 + }, + "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-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" + } + }, + "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 + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "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=", + "dev": true, + "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==", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "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-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" + } + }, + "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" + } + }, + "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 + }, + "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 + }, + "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 + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "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" + } + }, + "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" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "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==" + }, + "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": "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-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz", + "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==", + "dev": true + }, + "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-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-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "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.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "requires": { + "hasown": "^2.0.0" + } + }, + "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-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==", + "dev": true + }, + "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 + } + } + }, + "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-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-3.0.0.tgz", + "integrity": "sha1-Oayqa+f9HzRx3ELHQW5hwkMXrJ8=", + "dev": true, + "requires": { + "acorn": "~4.0.2", + "object-assign": "^4.0.1" + } + }, + "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-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": "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-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-negated-glob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz", + "integrity": "sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=", + "dev": true + }, + "is-negative-zero": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", + "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", + "dev": true + }, + "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-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-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" + } + }, + "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": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "^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-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==", + "dev": true, + "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-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=", + "dev": true + }, + "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 + }, + "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 + }, + "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" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "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": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "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" + } + }, + "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" + } + }, + "jake": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz", + "integrity": "sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==", + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=" + } + } + }, + "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": "6.0.0", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-6.0.0.tgz", + "integrity": "sha512-MvTOVoMxDZAftQYBApIlSfKnGMzi9cj351nXeqtnZTuXffPlbONN31+Es7F+Ke4okUeQ2xISukt4U1npfzLVrQ==", + "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-docblock": { + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-21.2.0.tgz", + "integrity": "sha512-5IZ7sY9dBAYSV+YjQ0Ovb540Ku7AO9Z5o2Cg789xj167iQuZ2cG+z0f3Uct6WeYLbU6aQiM2pCs7sZ+4dotydw==", + "dev": true + }, + "jest-worker": { + "version": "26.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.5.0.tgz", + "integrity": "sha512-kTw66Dn4ZX7WpjZ7T/SUDgRhapFRKWmisVAF0Rv4Fu8SLFD7eLbqpLvbxVqYhSgaWa7I+bW7pHnbyfNsH6stug==", + "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" + } + } + } + }, + "js-stringify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", + "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=", + "dev": 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.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "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-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-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 + }, + "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.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true + }, + "jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==", + "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" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "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" + } + }, + "jstransformer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", + "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", + "dev": true, + "requires": { + "is-promise": "^2.0.0", + "promise": "^7.0.1" + } + }, + "jszip": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", + "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", + "dev": true, + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "karma": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-5.2.3.tgz", + "integrity": "sha512-tHdyFADhVVPBorIKCX8A37iLHxc6RBRphkSoQ+MLKdAtFn1k97tD8WUGi1KlEtDZKL3hui0qhsY9HXUfSNDYPQ==", + "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": "^2.3.0", + "source-map": "^0.6.1", + "tmp": "0.2.1", + "ua-parser-js": "0.7.22", + "yargs": "^15.3.1" + }, + "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" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "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" + } + }, + "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 + }, + "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" + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + }, + "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" + } + }, + "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 + }, + "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 + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + } + } + }, + "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-istanbul-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "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" + } + }, + "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 + }, + "less": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/less/-/less-3.12.2.tgz", + "integrity": "sha512-+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "native-request": "^1.0.5", + "source-map": "~0.6.0", + "tslib": "^1.10.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, + "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.0.2", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-7.0.2.tgz", + "integrity": "sha512-7MKlgjnkCf63E3Lv6w2FvAEgLMx3d/tNBExITcanAq7ys5U8VPWT3F6xcRjYmdNfkoQ9udoVFb1r2azSiTnD6w==", + "dev": true, + "requires": { + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "dependencies": { + "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" + } + }, + "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" + } + } + } + }, + "license-webpack-plugin": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.3.1.tgz", + "integrity": "sha512-yhqTmlYIEpZWA122lf6E0G8+rkn0AzoQ1OpzUKKs/lXUqG1plmGnwmkuuPlfggzJR5y6DLOdot/Tv00CC51CeQ==", + "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" + } + }, + "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 + }, + "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": "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" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "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.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.0.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", + "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", + "dev": true, + "requires": { + "chalk": "^4.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" + } + }, + "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" + } + }, + "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" + } + } + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz", + "integrity": "sha512-i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==", + "dev": true + }, + "lower-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", + "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", + "dev": true, + "requires": { + "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 + } + } + }, + "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": "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" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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": "5.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", + "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^12.0.0", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "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 + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "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=" + }, + "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" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "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=" + }, + "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.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "requires": { + "mime-db": "1.44.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 + }, + "mini-css-extract-plugin": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.2.1.tgz", + "integrity": "sha512-G3yw7/TQaPfkuiR73MDcyiqhyP8SnbmLhUbpC76H+wtQxA6wfKhMCQOCb6wnPK0dQbjORAeOILQqEesg4/wF7A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "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" + } + }, + "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==", + "dev": true + }, + "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-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-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" + } + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "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" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + } + } + }, + "moment": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "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": { + "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 + }, + "multimatch": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz", + "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "array-differ": "^3.0.0", + "array-union": "^2.1.0", + "arrify": "^2.0.1", + "minimatch": "^3.0.4" + } + }, + "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.19.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.19.0.tgz", + "integrity": "sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw==", + "dev": true, + "optional": 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" + } + }, + "native-request": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.8.tgz", + "integrity": "sha512-vU2JojJVelUGp6jRcLwToPoWGxSx23z/0iX+I77J3Ht17rf2INGjrhOoQnjVo60nQd8wVsgzKkPfRXBiVdD2ag==", + "dev": true, + "optional": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "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=", + "dev": true + }, + "ngx-scanner-qrcode": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/ngx-scanner-qrcode/-/ngx-scanner-qrcode-1.2.8.tgz", + "integrity": "sha512-66vc4CUEGY57fp/D9F61aLaM+z2gTjbae/G6HQcEYPIBfbSFJIUxEA4HoAvNf50iq89vA7LHDZ4U9Av8EqJ0ww==", + "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==" + } + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", + "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", + "dev": true, + "requires": { + "lower-case": "^2.0.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 + } + } + }, + "node-fetch-npm": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", + "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, + "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-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": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "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": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.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": "4.0.7", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", + "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "JSONStream": "^1.3.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "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" + } + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "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 + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "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" + } + }, + "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" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "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=" + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "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" + } + }, + "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-hash": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", + "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==" + }, + "object-inspect": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", + "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==", + "dev": true + }, + "object-is": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz", + "integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "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==", + "dev": true, + "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.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "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.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", + "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "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=", + "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=", + "dev": true, + "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.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", + "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", + "dev": true, + "requires": { + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + } + }, + "opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==" + }, + "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 + } + } + }, + "ora": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz", + "integrity": "sha512-9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==", + "dev": true, + "requires": { + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.4.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "mute-stream": "0.0.8", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "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" + } + } + } + }, + "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-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "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 + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "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": "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": "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" + } + }, + "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 + }, + "pacote": { + "version": "9.5.12", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.12.tgz", + "integrity": "sha512-BUIj/4kKbwWg4RtnBncXPJd15piFSVNpTzY0rysSr3VnMowTYgkGKcaHrbReepAkjTr8lH2CVWRi58Spg2CicQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "cacache": "^12.0.2", + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "make-fetch-happen": "^5.0.0", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^3.0.0", + "npm-registry-fetch": "^4.0.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.10", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "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 + }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "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" + } + }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, + "npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "dev": true, + "requires": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "npm-pick-manifest": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", + "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.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" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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" + } + }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "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" + } + }, + "param-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", + "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", + "dev": true, + "requires": { + "dot-case": "^3.0.3", + "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 + } + } + }, + "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-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" + } + }, + "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-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" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascal-case": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", + "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", + "dev": true, + "requires": { + "no-case": "^3.0.3", + "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 + } + } + }, + "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.3", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-3.0.3.tgz", + "integrity": "sha512-UMFU6UETFpCNWbIWNczshPrnK/7JAXBP2NYw80ojElbQ2+JYxdqWDBkvvqM93u4u6oLmuJ/tPOf2tM8KtXv4eg==", + "dev": true, + "requires": { + "dot-case": "^3.0.3", + "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 + } + } + }, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "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=", + "dev": true + }, + "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.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "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=" + }, + "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" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "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": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "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": "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" + } + }, + "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" + } + }, + "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.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "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": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.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 + }, + "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-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" + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "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" + } + }, + "postcss-import": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", + "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "dependencies": { + "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 + } + } + }, + "postcss-loader": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-4.0.4.tgz", + "integrity": "sha512-pntA9zIR14drQo84yGTjQJg1m7T0DkXR4vXYHBngiRZdJtEeCrojL6lOpqUanMzG375lIJbT4Yug85zC/AJWGw==", + "dev": true, + "requires": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.4", + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0", + "semver": "^7.3.2" + }, + "dependencies": { + "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" + } + }, + "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.2.2", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", + "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "parse-json": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", + "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", + "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-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 + } + } + }, + "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-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" + } + } + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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-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" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "dev": true, + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "dev": true, + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "dev": true, + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "dev": true, + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "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" + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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" + } + }, + "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-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 + } + } + }, + "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-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 + } + } + }, + "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" + } + }, + "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 + }, + "prettier": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz", + "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==" + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "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==", + "dev": true + }, + "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" + }, + "dependencies": { + "retry": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", + "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", + "dev": true + } + } + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "genfun": "^5.0.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": { + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "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": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "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" + } + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "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": { + "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" + } + }, + "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" + } + }, + "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 + }, + "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" + } + }, + "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" + } + }, + "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-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" + } + }, + "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" + } + }, + "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" + } + }, + "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 + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "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 + }, + "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" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "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" + } + } + } + }, + "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 + }, + "webdriver-manager": { + "version": "12.1.7", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.7.tgz", + "integrity": "sha512-XINj6b8CYuUYC93SG3xPkxlyUc3IJbD6Vvo75CVGuG9uzsefDzWQrhz0Lq8vbPxtb4d63CZdYophF8k8Or/YiA==", + "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" + } + }, + "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-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "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" + } + } + } + }, + "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==", + "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.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.0.tgz", + "integrity": "sha512-inmsJyFBSHZaiGLaguoFgJGViX0If6AcfcElimvwj9perqjDpUpw79UIEDZbWFmoGVidh08aoE+e8tVkjVJPCw==", + "dev": true, + "requires": { + "pug-code-gen": "^3.0.0", + "pug-filters": "^4.0.0", + "pug-lexer": "^5.0.0", + "pug-linker": "^4.0.0", + "pug-load": "^3.0.0", + "pug-parser": "^6.0.0", + "pug-runtime": "^3.0.0", + "pug-strip-comments": "^2.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==", + "dev": true + }, + "is-expression": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", + "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "object-assign": "^4.1.1" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "pug-lexer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.0.tgz", + "integrity": "sha512-52xMk8nNpuyQ/M2wjZBN5gXQLIylaGkAoTk5Y1pBhVqaopaoj8Z0iVzpbFZAqitL4RHNVDZRnJDsqEYe99Ti0A==", + "dev": true, + "requires": { + "character-parser": "^2.2.0", + "is-expression": "^4.0.0", + "pug-error": "^2.0.0" + } + }, + "pug-runtime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.0.tgz", + "integrity": "sha512-GoEPcmQNnaTsePEdVA05bDpY+Op5VLHKayg08AQiqJBWU/yIaywEYv7TetC5dEQS3fzBBoyb2InDcZEg3mPTIA==", + "dev": true + } + } + }, + "pug-attrs": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-2.0.4.tgz", + "integrity": "sha512-TaZ4Z2TWUPDJcV3wjU3RtUXMrd3kM4Wzjbe3EWnSsZPsJ3LDI0F3yCnf2/W7PPFF+edUFQ0HgDL1IoxSz5K8EQ==", + "dev": true, + "requires": { + "constantinople": "^3.0.1", + "js-stringify": "^1.0.1", + "pug-runtime": "^2.0.5" + } + }, + "pug-code-gen": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.1.tgz", + "integrity": "sha512-xJIGvmXTQlkJllq6hqxxjRWcay2F9CU69TuAuiVZgHK0afOhG5txrQOcZyaPHBvSWCU/QQOqEp5XCH94rRZpBQ==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "doctypes": "^1.1.0", + "js-stringify": "^1.0.2", + "pug-attrs": "^3.0.0", + "pug-error": "^2.0.0", + "pug-runtime": "^3.0.0", + "void-elements": "^3.1.0", + "with": "^7.0.0" + }, + "dependencies": { + "constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "requires": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "pug-attrs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", + "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "js-stringify": "^1.0.2", + "pug-runtime": "^3.0.0" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + }, + "pug-runtime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.0.tgz", + "integrity": "sha512-GoEPcmQNnaTsePEdVA05bDpY+Op5VLHKayg08AQiqJBWU/yIaywEYv7TetC5dEQS3fzBBoyb2InDcZEg3mPTIA==", + "dev": true + }, + "void-elements": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", + "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", + "dev": true + } + } + }, + "pug-error": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-1.3.3.tgz", + "integrity": "sha512-qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==", + "dev": true + }, + "pug-filters": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", + "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", + "dev": true, + "requires": { + "constantinople": "^4.0.1", + "jstransformer": "1.0.0", + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0", + "resolve": "^1.15.1" + }, + "dependencies": { + "constantinople": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", + "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", + "dev": true, + "requires": { + "@babel/parser": "^7.6.0", + "@babel/types": "^7.6.1" + } + }, + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + } + } + }, + "pug-lexer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-4.1.0.tgz", + "integrity": "sha512-i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==", + "dev": true, + "requires": { + "character-parser": "^2.1.1", + "is-expression": "^3.0.0", + "pug-error": "^1.3.3" + } + }, + "pug-linker": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", + "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "pug-walk": "^2.0.0" + }, + "dependencies": { + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + } + } + }, + "pug-lint": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/pug-lint/-/pug-lint-2.6.0.tgz", + "integrity": "sha512-bCENAUT0grCSlUBIfX1USjpZPQWs5QccxVZoCIT4S+IevTn9NqJyzhrcyq/CFVSCOp9Z+pdwPQIkzdCvZ1pGlQ==", + "dev": true, + "requires": { + "acorn": "^4.0.1", + "commander": "^2.9.0", + "css-selector-parser": "^1.1.0", + "find-line-column": "^0.5.2", + "glob": "^7.0.3", + "minimatch": "^3.0.3", + "path-is-absolute": "^1.0.0", + "pug-attrs": "^2.0.3", + "pug-error": "^1.3.2", + "pug-lexer": "^4.0.0", + "resolve": "^1.1.7", + "strip-json-comments": "^2.0.1", + "void-elements": "^2.0.1" + } + }, + "pug-load": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", + "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "pug-walk": "^2.0.0" + } + }, + "pug-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", + "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", + "dev": true, + "requires": { + "pug-error": "^2.0.0", + "token-stream": "1.0.0" + }, + "dependencies": { + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + } + } + }, + "pug-runtime": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-2.0.5.tgz", + "integrity": "sha512-P+rXKn9un4fQY77wtpcuFyvFaBww7/91f3jHa154qU26qFAnOe6SW1CbIDcxiG5lLK9HazYrMCCuDvNgDQNptw==", + "dev": true + }, + "pug-strip-comments": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", + "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", + "dev": true, + "requires": { + "pug-error": "^2.0.0" + }, + "dependencies": { + "pug-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", + "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", + "dev": true + } + } + }, + "pug-walk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", + "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", + "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.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "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.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "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 + }, + "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==" + }, + "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==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + } + } + }, + "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": { + "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" + } + }, + "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" + } + } + } + }, + "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" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-pkg": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-4.0.1.tgz", + "integrity": "sha1-ljYlN48+HE1IyFhytabsfV0JMjc=", + "dev": true, + "requires": { + "normalize-package-data": "^2.3.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "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": "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" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "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": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "requires": { + "regenerate": "^1.4.2" + } + }, + "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==", + "dev": true + }, + "regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "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.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "requires": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + } + }, + "regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "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": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "dev": true, + "optional": true, + "peer": 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 + }, + "renderkid": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + } + }, + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "optional": true, + "peer": true + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "optional": true, + "peer": true + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "optional": true, + "peer": true, + "requires": { + "boolbase": "^1.0.0" + } + } + } + }, + "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=", + "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": { + "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.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "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" + } + } + } + }, + "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" + } + }, + "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.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "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 + } + } + }, + "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.1.4", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz", + "integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug==", + "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 + }, + "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.32.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.32.1.tgz", + "integrity": "sha512-Op2vWTpvK7t6/Qnm1TTh7VjEZZkN8RWgf0DHbkKzQBwNf748YhXbozHVefqpPp/Fuyk/PQPAnYsBxAEtlMvpUw==", + "dev": true, + "requires": { + "fsevents": "~2.1.2" + } + }, + "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.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", + "dev": true + }, + "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" + } + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==" + } + } + }, + "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.27.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.27.0.tgz", + "integrity": "sha512-0gcrER56OkzotK/GGwgg4fPrKuiFlPNitO7eUJ18Bs+/NBlofJfMxmxqpqJxjae9vu0Wq8TZzrSyxZal00WDig==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-loader": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-10.0.5.tgz", + "integrity": "sha512-2LqoNPtKkZq/XbXNQ4C64GFEleSEHKv6NPSI+bMC/l+jpEXGJhiRYkAQToO24MR7NU4JRY2RpLpJ/gjo2Uf13w==", + "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": { + "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" + } + }, + "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" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "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" + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "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==", + "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==", + "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=" + } + } + }, + "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==" + } + } + }, + "sentence-case": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.3.tgz", + "integrity": "sha512-ZPr4dgTcNkEfcGOMFQyDdJrTU9uQO1nb1cjf+nuzb6FxgMDgKddZOM29qEsB7jvsZSMruLRcL2KfM4ypKpa0LA==", + "dev": true, + "requires": { + "no-case": "^3.0.3", + "tslib": "^1.10.0", + "upper-case-first": "^2.0.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 + } + } + }, + "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==", + "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" + } + } + } + }, + "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==" + }, + "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" + } + }, + "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 + }, + "shelljs": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", + "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "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 + }, + "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 + }, + "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.3", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.3.tgz", + "integrity": "sha512-WM1sIXEO+rsAHBKjGf/6R1HBBcgbncKS08d2Aqec/mrDSpU80SiOU41hO7ny6DToHSyrlwTYzQBIK1FPSx4Y3Q==", + "dev": true, + "requires": { + "dot-case": "^3.0.3", + "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 + } + } + }, + "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" + } + }, + "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 + } + } + }, + "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" + } + }, + "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-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-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" + } + } + } + }, + "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": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.3.0.tgz", + "integrity": "sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg==", + "dev": true, + "requires": { + "debug": "~4.1.0", + "engine.io": "~3.4.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.3.0", + "socket.io-parser": "~3.4.0" + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "socket.io-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", + "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "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 + }, + "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" + } + } + } + } + } + }, + "socket.io-parser": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.4.1.tgz", + "integrity": "sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dev": true, + "peer": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + }, + "dependencies": { + "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, + "peer": true + } + } + }, + "sockjs-client": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.6.1.tgz", + "integrity": "sha512-2g0tjOR+fRs0amxENLi/q5TiJTqY+WXFOzb5UwXndlK6TO3U/mirZznpx6w34HVMoc3g7cY24yC/ZMIYnDlfkw==", + "dev": true, + "peer": true, + "requires": { + "debug": "^3.2.7", + "eventsource": "^2.0.2", + "faye-websocket": "^0.11.4", + "inherits": "^2.0.4", + "url-parse": "^1.5.10" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "peer": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } + } + }, + "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.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-1.1.2.tgz", + "integrity": "sha512-bjf6eSENOYBX4JZDfl9vVLNsGAQ6Uz90fLmOazcmMcyDYOBFsGxPNn83jXezWLY9bJsVAo1ObztxPcV8HAbjVA==", + "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": { + "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" + } + }, + "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.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" + } + }, + "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.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "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==", + "dev": true + }, + "spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "dev": true + }, + "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" + }, + "dependencies": { + "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" + } + } + } + }, + "speed-measure-webpack-plugin": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.3.tgz", + "integrity": "sha512-2ljD4Ch/rz2zG3HsLsnPfp23osuPBS0qPuz9sGpkNXTN1Ic4M+W9xB8l8rS8ob2cO4b1L+WTJw/0AJwWYVgcxQ==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + } + }, + "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" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "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.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.0.tgz", + "integrity": "sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA==", + "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 + }, + "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" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "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" + } + }, + "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" + } + }, + "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" + } + } + } + }, + "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" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz", + "integrity": "sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "string.prototype.trimstart": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz", + "integrity": "sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "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" + } + }, + "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": { + "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" + } + }, + "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-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" + } + } + } + }, + "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" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "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" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "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.1.1", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-4.1.1.tgz", + "integrity": "sha512-Vnm7J/nIs/P6swIrdwJW/dflhsCOiFmb1U3PeQ6phRtg1soPLN4uKnnL7AtGIJDe173elbtYIXVzmCyF493CfA==", + "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": { + "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" + } + }, + "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==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "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" + } + }, + "symbol-observable": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", + "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", + "dev": true + }, + "tapable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.1.1.tgz", + "integrity": "sha512-Wib1S8m2wdpLbmQz0RBEVosIyvb/ykfKXf3ZIDqvWoMg/zTNm6G/tDSuUM61J1kNCDXWJrLHGSFeMhAG+gAGpQ==", + "dev": true + }, + "tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + } + } + }, + "terser": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.7.tgz", + "integrity": "sha512-lJbKdfxWvjpV330U4PBZStCT9h3N9A4zZVA5Y4k9sCWXknrpdyxi1oMsRKLmQ/YDMDxSBKIh88v0SkdhdqX06w==", + "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": { + "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" + } + }, + "p-limit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz", + "integrity": "sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==", + "dev": true, + "requires": { + "p-try": "^2.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 + }, + "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=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "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 + }, + "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-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "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-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==" + }, + "token-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", + "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=", + "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-morph": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-7.1.1.tgz", + "integrity": "sha512-vzLA3RW6bHNApHtzFA9CzR1VVBsImjKAhg4rMh/VjyNRWIgIGsyX8RIYBqwhR7CNWv40/W5fmdDgdtHRf+Q02w==", + "dev": true, + "requires": { + "@dsherret/to-absolute-glob": "^2.0.2", + "@ts-morph/common": "~0.5.0", + "code-block-writer": "^10.1.0" + } + }, + "ts-node": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-9.0.0.tgz", + "integrity": "sha512-/TqB4SnererCDR/vb4S/QvSZvzQMJN8daAslg7MeaiHvD8rDZsSfXmNeNumyZZzMned72Xoq/isQljYSt8Ynfg==", + "dev": true, + "requires": { + "arg": "^4.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "source-map-support": "^0.5.17", + "yn": "3.1.1" + } + }, + "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.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "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": { + "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.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + } + } + }, + "tslint-plugin-prettier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslint-plugin-prettier/-/tslint-plugin-prettier-2.3.0.tgz", + "integrity": "sha512-F9e4K03yc9xuvv+A0v1EmjcnDwpz8SpCD8HzqSDe0eyg34cBinwn9JjmnnRrNAs4HdleRQj7qijp+P/JTxt4vA==", + "dev": true, + "requires": { + "eslint-plugin-prettier": "^2.2.0", + "lines-and-columns": "^1.1.6", + "tslib": "^1.7.1" + }, + "dependencies": { + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "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.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "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==", + "dev": true + }, + "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==", + "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=", + "dev": true + }, + "typescript": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.22", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", + "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", + "dev": true + }, + "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": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true + }, + "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" + } + }, + "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 + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "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 + }, + "update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "requires": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + } + }, + "upper-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-2.0.1.tgz", + "integrity": "sha512-laAsbea9SY5osxrv7S99vH9xAaJKrw5Qpdh4ENRLcaxipjKsiaBwiAsxfa8X5mObKNTQPsupSq0J/VIxsSJe3A==", + "dev": true, + "requires": { + "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 + } + } + }, + "upper-case-first": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.1.tgz", + "integrity": "sha512-105J8XqQ+9RxW3l9gHZtgve5oaiR9TIwvmZAMAIZWRHe00T21cdvewKORTlOJf/zXW6VukuTshM+HXZNWz7N5w==", + "dev": true, + "requires": { + "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 + } + } + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "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.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.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=", + "dev": true + }, + "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" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", + "dev": true, + "optional": true, + "peer": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "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=" + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "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-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" + } + }, + "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" + } + }, + "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" + } + }, + "webpack": { + "version": "4.47.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.47.0.tgz", + "integrity": "sha512-td7fYwgLSrky3fI1EuU5cneU4+pbH6GgOfuKNS1tNPcfdGinGELAqsb/BP4nnvZyKSG2i/xFGU7+n2PvZA8HJQ==", + "dev": true, + "peer": 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.5.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": { + "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, + "peer": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "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, + "peer": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "peer": 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" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "peer": 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, + "peer": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "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, + "peer": 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, + "peer": 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, + "peer": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true, + "peer": true + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "peer": true + } + } + }, + "webpack-bundle-analyzer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.1.0.tgz", + "integrity": "sha512-R3oQaPn7KGJGqnOyuAbdNlH4Nm+w+gvoXQZWqYjgaMnR+vY4Ga8VD5ntfkKa00GarO7LQfOlePvtGvr254Z4Ag==", + "requires": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^6.2.0", + "ejs": "^3.1.5", + "express": "^4.17.1", + "filesize": "^6.1.0", + "gzip-size": "^5.1.1", + "lodash": "^4.17.20", + "mkdirp": "^1.0.4", + "opener": "^1.5.2", + "ws": "^7.3.1" + }, + "dependencies": { + "acorn": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.0.4.tgz", + "integrity": "sha512-XNP0PqF1XD19ZlLKvB7cMmnZswW4C/03pRHgirB30uSJTaS3A3V1/P4sS3HPvFmjoriPCJQs+JDSbm4bL1TxGQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "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==", + "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==", + "requires": { + "color-name": "~1.1.4" + } + }, + "commander": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz", + "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "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==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "ws": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.0.tgz", + "integrity": "sha512-kyFwXuV/5ymf+IXhS6f0+eAFvydbaBW3zjpT6hUdAh/hbVjTIB5EHBGi0bPoCLSK2wcuz3BrEkB9LrYv1Nm4NQ==", + "requires": {} + } + } + }, + "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": { + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", + "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.11.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz", + "integrity": "sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==", + "dev": true, + "peer": true, + "requires": { + "ansi-html-community": "0.0.8", + "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": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "peer": 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, + "peer": 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, + "peer": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": true, + "requires": { + "is-extglob": "^2.1.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, + "peer": 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, + "peer": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "peer": 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, + "peer": 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, + "peer": 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" + } + }, + "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, + "peer": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "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, + "peer": 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, + "peer": 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, + "peer": 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, + "peer": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "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.2.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.2.0.tgz", + "integrity": "sha512-QBglJBg5+lItm3/Lopv8KDDK01+hjdg2azEwi/4vKJ8ZmGPdtJsTpjtNNOW3a4WiqzXdCATtTudOZJngE7RKkA==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" + } + }, + "webpack-sources": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.0.1.tgz", + "integrity": "sha512-A9oYz7ANQBK5EN19rUXbvNgfdfZf5U2gP0769OXsj9CvYkCR6OHOsd6OKyEy4H38GGxpsQPKIL83NC64QY6Xmw==", + "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.1", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.5.1.tgz", + "integrity": "sha512-uekbQ93PZ9e7BFB8Hl9cFIVYQyQqiXp2ExKk9Zv+qZfH/zHXHrCFAfw1VW0+NqWbTWrs/HnuDrto3+tiPXh//Q==", + "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 + }, + "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-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true + }, + "with": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", + "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", + "dev": true, + "requires": { + "@babel/parser": "^7.9.6", + "@babel/types": "^7.9.6", + "assert-never": "^1.2.1", + "babel-walk": "3.0.0-canary-5" + } + }, + "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": "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" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "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" + } + }, + "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 + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "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.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz", + "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==", + "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" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + } + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "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==" + } + } +} diff --git a/backoffice/package.json b/backoffice/package.json new file mode 100644 index 0000000..a7e332a --- /dev/null +++ b/backoffice/package.json @@ -0,0 +1,86 @@ +{ + "name": "maker-book", + "version": "1.3.0", + "scripts": { + "build": "npm run build:pug && npm run ng -- build --prod --build-optimizer=true --statsJson=true && npm run build:version", + "build:debug": "npm run build:pug && npm run ng -- build --prod --source-map --build-optimizer=true --statsJson=true && npm run build:version", + "build:pug": "node scripts/build-pug.js", + "build:version": "node scripts/version.js", + "bundle-report": "webpack-bundle-analyzer dist/maker-book/stats-es2015.json", + "docker:build": "node scripts/docker/docker-build.js", + "docker:run": "node scripts/docker/docker-run.js", + "e2e": "npm run ng -- e2e", + "generate:component": "./node_modules/.bin/ng generate @sbpro/ng:component", + "generate:directive": "./node_modules/.bin/ng generate @sbpro/ng:directive", + "generate:module": "./node_modules/.bin/ng generate @sbpro/ng:module", + "generate:service": "./node_modules/.bin/ng generate @sbpro/ng:service", + "lint:fix": "npm run ng -- lint --fix", + "lint": "npm run ng -- lint", + "ng": "cross-env NODE_OPTIONS=--max_old_space_size=2048 ./node_modules/.bin/ng", + "serve": "./node_modules/.bin/static-server dist/maker-book", + "start": "node scripts/start.js", + "test": "npm run ng -- test" + }, + "private": true, + "dependencies": { + "@angular/animations": "11.0.1", + "@angular/common": "11.0.1", + "@angular/compiler": "11.0.1", + "@angular/core": "11.0.1", + "@angular/forms": "11.0.1", + "@angular/platform-browser": "11.0.1", + "@angular/platform-browser-dynamic": "11.0.1", + "@angular/router": "11.0.1", + "@fortawesome/angular-fontawesome": "0.8.0", + "@fortawesome/fontawesome-svg-core": "1.2.32", + "@fortawesome/free-brands-svg-icons": "5.15.1", + "@fortawesome/free-regular-svg-icons": "5.15.1", + "@fortawesome/free-solid-svg-icons": "5.15.1", + "@ng-bootstrap/ng-bootstrap": "8.0.0", + "@prettier/plugin-pug": "1.10.1", + "chart.js": "2.9.4", + "crypto-js": "^4.2.0", + "ngx-scanner-qrcode": "^1.2.8", + "object-hash": "2.0.3", + "rxjs": "6.6.3", + "tslib": "2.0.3", + "uuid": "8.3.1", + "webpack-bundle-analyzer": "4.1.0", + "zone.js": "^0.10.3" + }, + "devDependencies": { + "@angular-devkit/build-angular": "0.1100.2", + "@angular/cli": "11.0.2", + "@angular/compiler-cli": "11.0.1", + "@angular/language-service": "11.0.1", + "@inip/static-server": "1.0.1", + "@sbpro/ng": "1.4.2", + "@types/chart.js": "2.9.28", + "@types/jasmine": "3.6.1", + "@types/jasminewd2": "2.0.8", + "@types/node": "14.14.8", + "@types/object-hash": "1.3.4", + "@types/uuid": "8.3.0", + "bootstrap": "4.5.3", + "chokidar": "3.4.3", + "codelyzer": "6.0.1", + "concurrently": "5.3.0", + "cross-env": "7.0.2", + "jasmine-core": "3.6.0", + "jasmine-spec-reporter": "6.0.0", + "karma": "5.2.3", + "karma-chrome-launcher": "3.1.0", + "karma-coverage-istanbul-reporter": "3.0.3", + "karma-jasmine": "4.0.1", + "karma-jasmine-html-reporter": "1.5.4", + "prettier": "2.1.2", + "protractor": "7.0.0", + "pug": "3.0.0", + "pug-lint": "2.6.0", + "shelljs": "0.8.4", + "ts-node": "9.0.0", + "tslint": "6.1.3", + "tslint-plugin-prettier": "2.3.0", + "typescript": "4.0.5" + } +} diff --git a/backoffice/scripts/build-pug.js b/backoffice/scripts/build-pug.js new file mode 100644 index 0000000..f9d5792 --- /dev/null +++ b/backoffice/scripts/build-pug.js @@ -0,0 +1,17 @@ +'use strict'; +const path = require('path'); +const sh = require('shelljs'); +const renderPug = require('./render-pug'); + +const srcPath = path.resolve(path.dirname(__filename), '../src'); + +sh.find(srcPath).forEach(_processFile); + +function _processFile(filePath) { + if ( + filePath.match(/\.pug$/) + && !filePath.match(/pug_include/) + ) { + renderPug(filePath); + } +} \ No newline at end of file diff --git a/backoffice/scripts/docker/docker-build.js b/backoffice/scripts/docker/docker-build.js new file mode 100644 index 0000000..2d6456a --- /dev/null +++ b/backoffice/scripts/docker/docker-build.js @@ -0,0 +1,7 @@ +const version = require('../version.js'); +const sh = require('shelljs'); + +const imageName = 'sb-admin-angular'; + +sh.exec(`docker build -t ${imageName}:latest -t ${imageName}:${version} .`); + diff --git a/backoffice/scripts/docker/docker-run.js b/backoffice/scripts/docker/docker-run.js new file mode 100644 index 0000000..6f5cbdb --- /dev/null +++ b/backoffice/scripts/docker/docker-run.js @@ -0,0 +1,15 @@ +const angularJSON = require('../../angular.json'); +const sh = require('shelljs'); + +const imageName = angularJSON.defaultProject; +const isRunning = sh.exec(`docker ps -a -q -f name=${imageName}`, {silent: true}).stdout; +const PORT = '4400'; + +if (isRunning) { + sh.exec(`docker rm -f ${imageName}`); +} + +sh.exec(`docker run -d --name ${imageName} -p ${PORT}:80 ${imageName}:latest`); +sh.exec(`docker ps`); + +console.log(`\n\n### INFO: ${imageName} is running at:\n\n\thttp://localhost:${PORT}\n`); diff --git a/backoffice/scripts/docker/start-nginx.sh b/backoffice/scripts/docker/start-nginx.sh new file mode 100644 index 0000000..9522523 --- /dev/null +++ b/backoffice/scripts/docker/start-nginx.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +nginx -g 'daemon off;' diff --git a/backoffice/scripts/pug-watch.js b/backoffice/scripts/pug-watch.js new file mode 100644 index 0000000..aad3c94 --- /dev/null +++ b/backoffice/scripts/pug-watch.js @@ -0,0 +1,45 @@ +'use strict'; + +const _ = require('lodash'); +const chokidar = require('chokidar'); +const renderPug = require('./render-pug'); + +const watcher = chokidar.watch('src', { + persistent: true, +}); + +process.title = 'pug-watch'; + +let allFiles = {}; + +watcher.on('add', filePath => _processFile(filePath, 'add')); +watcher.on('change', filePath => _processFile(filePath, 'change')); + +function _processFile(filePath, watchEvent) { + + if (filePath.match(/\.pug$/)) { + return _handlePug(filePath, watchEvent); + } + +} + +function _handlePug(filePath, watchEvent) { + + if (watchEvent === 'change') { + if (filePath.match(/pug_include/)) { + return _renderAllPug(); + } + return renderPug(filePath); + } + if (!filePath.match(/pug_include/)) { + allFiles[filePath] = true; + return renderPug(filePath); + } +} + +function _renderAllPug() { + console.log('### INFO: Rendering All'); + _.each(allFiles, (value, filePath) => { + renderPug(filePath); + }); +} diff --git a/backoffice/scripts/render-pug.js b/backoffice/scripts/render-pug.js new file mode 100644 index 0000000..71304de --- /dev/null +++ b/backoffice/scripts/render-pug.js @@ -0,0 +1,25 @@ +'use strict'; +const fs = require('fs'); +const pug = require('pug'); +const prettier = require('prettier'); + +module.exports = function renderPug(filePath) { + + console.log(`### INFO: Rendering ${filePath}`); + const html = pug.renderFile(filePath, { + doctype: 'html', + filename: filePath, + }); + + const prettified = prettier.format(html, { + printWidth: 1000, + tabWidth: 4, + singleQuote: true, + proseWrap: 'preserve', + endOfLine: 'lf', + parser: 'html' + }); + + fs.writeFileSync(filePath.replace(/\.pug$/, '.html'), prettified); + +}; \ No newline at end of file diff --git a/backoffice/scripts/start.js b/backoffice/scripts/start.js new file mode 100644 index 0000000..4a5e00f --- /dev/null +++ b/backoffice/scripts/start.js @@ -0,0 +1,22 @@ +const concurrently = require('concurrently'); +const port = process.env.PORT || 4200; + +concurrently([ + { command: 'node scripts/pug-watch.js', name: 'PUG_WATCH', prefixColor: 'bgGreen.bold' }, + { + command: `npm run ng -- serve --port ${port} --open`, + name: 'NG_SERVE', + prefixColor: 'bgBlue.bold', + } +], { + prefix: 'name', + killOthers: ['failure', 'success'], +}).then(success, failure); + +function success() { + console.log('Success'); +} + +function failure() { + console.log('Failure'); +} diff --git a/backoffice/scripts/version.js b/backoffice/scripts/version.js new file mode 100644 index 0000000..16fc795 --- /dev/null +++ b/backoffice/scripts/version.js @@ -0,0 +1,15 @@ +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const pjPath = path.resolve(path.dirname(__filename), '../package.json'); +const versionPath = path.resolve(path.dirname(__filename), '../version'); +const distVersionPath = path.resolve(path.dirname(__filename), '../dist/sb-admin-angular/assets/version'); + +const pj = require(pjPath); + +console.log(`### INFO: Current Version: ${pj.version}`); +fs.writeFileSync(versionPath, pj.version); +fs.writeFileSync(distVersionPath, pj.version); + +module.exports = pj.version; \ No newline at end of file diff --git a/backoffice/src/app/app-routing.module.ts b/backoffice/src/app/app-routing.module.ts new file mode 100644 index 0000000..a8f8857 --- /dev/null +++ b/backoffice/src/app/app-routing.module.ts @@ -0,0 +1,92 @@ +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +const routes: Routes = [ + { + path: '', + pathMatch: 'full', + redirectTo: '/auth2/login', + }, + { + path: 'charts', + loadChildren: () => + import('modules/charts/charts-routing.module').then(m => m.ChartsRoutingModule), + }, + { + path: 'dashboard', + loadChildren: () => + import('modules/dashboard/dashboard-routing.module').then( + m => m.DashboardRoutingModule + ), + }, + { + path: 'auth', + loadChildren: () => + import('modules/auth/auth-routing.module').then(m => m.AuthRoutingModule), + }, + { + path: 'error', + loadChildren: () => + import('modules/error/error-routing.module').then(m => m.ErrorRoutingModule), + }, + { + path: 'tables', + loadChildren: () => + import('modules/tables/tables-routing.module').then(m => m.TablesRoutingModule), + }, + { + path: 'version', + loadChildren: () => + import('modules/utility/utility-routing.module').then(m => m.UtilityRoutingModule), + }, + + + { + path: 'auth2', + loadChildren: () => + import('pages/auth/auth-routing.module').then(m => m.AuthRoutingModule), + }, + { + path: 'users', + loadChildren: () => + import('pages/users/users-routing.module').then(m => m.UsersRoutingModule), + }, + { + path: 'courses', + loadChildren: () => + import('pages/courses/courses-routing.module').then(m => m.CoursesRoutingModule), + }, + { + path: 'classes', + loadChildren: () => + import('pages/classes/classes-routing.module').then(m => m.ClassesRoutingModule), + }, + { + path: 'books', + loadChildren: () => + import('pages/books/books-routing.module').then(m => m.BooksRoutingModule), + }, + { + path: 'student', + loadChildren: () => + import('pages/doing-class/doing-class-routing.module').then(m => m.DoingClassRoutingModule), + }, + + + { + path: '**', + pathMatch: 'full', + loadChildren: () => + import('modules/error/error-routing.module').then(m => m.ErrorRoutingModule), + }, + + + + +]; + +@NgModule({ + imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })], + exports: [RouterModule], +}) +export class AppRoutingModule {} diff --git a/backoffice/src/app/app.component.html b/backoffice/src/app/app.component.html new file mode 100644 index 0000000..90c6b64 --- /dev/null +++ b/backoffice/src/app/app.component.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backoffice/src/app/app.component.pug b/backoffice/src/app/app.component.pug new file mode 100644 index 0000000..6053953 --- /dev/null +++ b/backoffice/src/app/app.component.pug @@ -0,0 +1 @@ +router-outlet diff --git a/backoffice/src/app/app.component.scss b/backoffice/src/app/app.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/backoffice/src/app/app.component.spec.ts b/backoffice/src/app/app.component.spec.ts new file mode 100644 index 0000000..69b1a2c --- /dev/null +++ b/backoffice/src/app/app.component.spec.ts @@ -0,0 +1,25 @@ +import { TestBed, waitForAsync } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; + +import { AppComponent } from './app.component'; + +describe('AppComponent', () => { + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [RouterTestingModule], + declarations: [AppComponent], + }).compileComponents(); + })); + + it('should create the app', () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app).toBeTruthy(); + }); + + it(`should have as title 'sb-admin-angular'`, () => { + const fixture = TestBed.createComponent(AppComponent); + const app = fixture.debugElement.componentInstance; + expect(app.title).toEqual('sb-admin-angular'); + }); +}); diff --git a/backoffice/src/app/app.component.ts b/backoffice/src/app/app.component.ts new file mode 100644 index 0000000..c94160c --- /dev/null +++ b/backoffice/src/app/app.component.ts @@ -0,0 +1,30 @@ +import { Component } from '@angular/core'; +import { Title } from '@angular/platform-browser'; +import { ChildActivationEnd, Router } from '@angular/router'; +import { TranslationsService } from 'pages/general/services'; +import { filter } from 'rxjs/operators'; + +@Component({ + selector: 'app-root', + templateUrl: './app.component.html', + styleUrls: ['./app.component.scss'], +}) +export class AppComponent { + title = 'maker-book'; + + constructor( + public router: Router, + private titleService: Title, + public translationsService: TranslationsService, + ) { + this.router.events + .pipe(filter(event => event instanceof ChildActivationEnd)) + .subscribe(event => { + let snapshot = (event as ChildActivationEnd).snapshot; + while (snapshot.firstChild !== null) { + snapshot = snapshot.firstChild; + } + this.titleService.setTitle(snapshot.data.title); + }); + } +} diff --git a/backoffice/src/app/app.module.ts b/backoffice/src/app/app.module.ts new file mode 100644 index 0000000..b4371e7 --- /dev/null +++ b/backoffice/src/app/app.module.ts @@ -0,0 +1,28 @@ +import { HttpClientModule } from '@angular/common/http'; +import { APP_INITIALIZER, NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; + +import { AppRoutingModule } from './app-routing.module'; +import { AppComponent } from './app.component'; +import { FaIconLibrary } from '@fortawesome/angular-fontawesome'; +import { faCamera, faEdit, faMinus, faPlus, faTrash, faWindowClose } from '@fortawesome/free-solid-svg-icons'; +import { TranslationsService } from 'pages/general/services'; + +@NgModule({ + declarations: [AppComponent], + imports: [BrowserModule, AppRoutingModule, HttpClientModule], + providers: [ + { + provide: APP_INITIALIZER, + useFactory: (translationService: TranslationsService) => () => translationService.changeLanguage(localStorage.getItem("locale") || 'en'), // Idioma padrão + deps: [TranslationsService], + multi: true + } + ], + bootstrap: [AppComponent], +}) +export class AppModule { + constructor(library: FaIconLibrary) { + library.addIcons(faPlus, faMinus, faTrash, faEdit, faCamera, faWindowClose); + } +} diff --git a/backoffice/src/assets/.gitkeep b/backoffice/src/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/backoffice/src/assets/i18n/en.json b/backoffice/src/assets/i18n/en.json new file mode 100644 index 0000000..d2fa03f --- /dev/null +++ b/backoffice/src/assets/i18n/en.json @@ -0,0 +1,19 @@ +{ + "type_access_key": "Type your access key", + "text_read_qrcode": "To access, use your camera to read the QR Code or enter the access key", + "btn_read_qrcode": "READ QR CODE", + "login_fail": "User and/or password wrong", + "btn_login": "LOGIN", + "btn_logout": "LOGOUT", + "sure_leave": "Are you sure wanna leave?", + "btn_yes": "YES", + "btn_no": "NO", + "text_what_name": "What is your name?", + "text_type_name": "Type your name...", + "btn_save": "SAVE", + "btn_read_book": "READ THE BOOK", + "btn_back": "Go Back", + "lesson": "LESSON", + "no_classes": "There are currently no classes available for this book.", + "loading": "LOADING..." +} \ No newline at end of file diff --git a/backoffice/src/assets/i18n/pt.json b/backoffice/src/assets/i18n/pt.json new file mode 100644 index 0000000..050d5c9 --- /dev/null +++ b/backoffice/src/assets/i18n/pt.json @@ -0,0 +1,19 @@ +{ + "type_access_key": "Digite sua chave de acesso", + "text_read_qrcode": "Para acessar, utilize sua câmera para ler o QR Code ou digite a chave de acesso", + "btn_read_qrcode": "LER QR CODE", + "login_fail": "Usuário e/ou senha incorretos", + "btn_login": "ENTRAR", + "btn_logout": "SAIR", + "sure_leave": "Tem certeza que deseja sair?", + "btn_yes": "SIM", + "btn_no": "NÃO", + "text_what_name": "Qual é seu nome?", + "text_type_name": "Digite seu nome...", + "btn_save": "SALVAR", + "btn_read_book": "LER O LIVRO", + "btn_back": "Voltar", + "lesson": "LIÇÃO", + "no_classes": "No momento não existem aulas disponíveis para esse livro.", + "loading": "CARREGANDO..." +} \ No newline at end of file diff --git a/backoffice/src/assets/img/error-404-monochrome.svg b/backoffice/src/assets/img/error-404-monochrome.svg new file mode 100644 index 0000000..f0d345f --- /dev/null +++ b/backoffice/src/assets/img/error-404-monochrome.svg @@ -0,0 +1 @@ +error-404-monochrome \ No newline at end of file diff --git a/backoffice/src/assets/img/icons/ContentIcon.svg b/backoffice/src/assets/img/icons/ContentIcon.svg new file mode 100644 index 0000000..81e13be --- /dev/null +++ b/backoffice/src/assets/img/icons/ContentIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/backoffice/src/assets/img/icons/English.svg b/backoffice/src/assets/img/icons/English.svg new file mode 100644 index 0000000..695658b --- /dev/null +++ b/backoffice/src/assets/img/icons/English.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/backoffice/src/assets/img/icons/GameIcon(1).svg b/backoffice/src/assets/img/icons/GameIcon(1).svg new file mode 100644 index 0000000..49592d7 --- /dev/null +++ b/backoffice/src/assets/img/icons/GameIcon(1).svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/backoffice/src/assets/img/icons/GameIcon.svg b/backoffice/src/assets/img/icons/GameIcon.svg new file mode 100644 index 0000000..9e59b37 --- /dev/null +++ b/backoffice/src/assets/img/icons/GameIcon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/backoffice/src/assets/img/icons/Logout.svg b/backoffice/src/assets/img/icons/Logout.svg new file mode 100644 index 0000000..c7c61d2 --- /dev/null +++ b/backoffice/src/assets/img/icons/Logout.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/backoffice/src/assets/img/icons/PlayIcon(1).svg b/backoffice/src/assets/img/icons/PlayIcon(1).svg new file mode 100644 index 0000000..32f2bf5 --- /dev/null +++ b/backoffice/src/assets/img/icons/PlayIcon(1).svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/backoffice/src/assets/img/icons/PlayIcon.svg b/backoffice/src/assets/img/icons/PlayIcon.svg new file mode 100644 index 0000000..5dc27ba --- /dev/null +++ b/backoffice/src/assets/img/icons/PlayIcon.svg @@ -0,0 +1,3 @@ + + + diff --git a/backoffice/src/assets/img/icons/Portuguese.svg b/backoffice/src/assets/img/icons/Portuguese.svg new file mode 100644 index 0000000..3415be6 --- /dev/null +++ b/backoffice/src/assets/img/icons/Portuguese.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/backoffice/src/assets/img/icons/__MACOSX/._Content Icon.svg b/backoffice/src/assets/img/icons/__MACOSX/._Content Icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..39fc53f92eb06a68ef1482d4f5ec1ecb3a1fa82e GIT binary patch literal 293 zcmZQz6=P>$Vqox1Ojhs@R)|o50+1L3ClDI}@n;|g@)=cuG!eitBqRu;46Ne>kR6Mr z4P-h<+?9brH90?5FR`E?Csi*uwInemu_Vzd+t$Vqox1Ojhs@R)|o50+1L3ClDI}@n;|g@)=cuG!eitBqRu;46Ne>kR6Mr z4P-h<+?9brH90?5FR`E?Csi*uwInemu_Vzd+t$Vqox1Ojhs@R)|o50+1L3ClDI}@n;|g@)=cuG!eitBqRu;46Ne>kR6Mr z4P-h<+?9brH90?5FR`E?Csi*uwInemu_Vzd+t$Vqox1Ojhs@R)|o50+1L3ClDI}@n;|g@)=cuG!eitBqRu;46Ne>kR6Mr z4P-h<+?9brH90?5FR`E?Csi*uwInemu_Vzd+t$Vqox1Ojhs@R)|o50+1L3ClDI}@n;|g@)=cuG!eitBqRu;46Ne>kR6Mr z4P-h<+?9brH90?5FR`E?Csi*uwInemu_Vzd+t$Vqox1Ojhs@R)|o50+1L3ClDI}@n;|g@)=cuG!eitBqRu;46Ne>kR6Mr z4P-h<+?9brH90?5FR`E?Csi*uwInemu_Vzd+t$Vqox1Ojhs@R)|o50+1L3ClDI}@n;|g@)=cuG!eitBqRu;46Ne>kR6Mr z4P-h<+?9brH90?5FR`E?Csi*uwInemu_Vzd+t$Vqox1Ojhs@R)|o50+1L3ClDI}@n;|g@)=cuG!eitBqRu;46Ne>kR6Mr z4P-h<+?9brH90?5FR`E?Csi*uwInemu_Vzd+t0W literal 0 HcmV?d00001 diff --git a/backoffice/src/assets/img/icons/fa6-solid_camera.svg b/backoffice/src/assets/img/icons/fa6-solid_camera.svg new file mode 100644 index 0000000..93a5d64 --- /dev/null +++ b/backoffice/src/assets/img/icons/fa6-solid_camera.svg @@ -0,0 +1,3 @@ + + + diff --git a/backoffice/src/assets/img/logo.png b/backoffice/src/assets/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cea3cafdd1151e048b808181a0c6577128baed61 GIT binary patch literal 23650 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 sEj7A9tclVCHtbKjs!&-u@P0Xd@PYXATM literal 0 HcmV?d00001 diff --git a/backoffice/src/assets/version b/backoffice/src/assets/version new file mode 100644 index 0000000..d19647d --- /dev/null +++ b/backoffice/src/assets/version @@ -0,0 +1,2 @@ +// This file will be replaced at build time +x.x.x \ No newline at end of file diff --git a/backoffice/src/environments/environment.prod.ts b/backoffice/src/environments/environment.prod.ts new file mode 100644 index 0000000..c02d8af --- /dev/null +++ b/backoffice/src/environments/environment.prod.ts @@ -0,0 +1,29 @@ +export const environment = { + production: true, + api_endpoint: "https://makerbook.mooo.com/api", + currentUser: localStorage.getItem("currentUser") ? JSON.parse(localStorage.getItem("currentUser") || "") : null, + titleProject: "Maker Book", + defaultImageError: "https://static.vecteezy.com/system/resources/previews/005/337/799/non_2x/icon-image-not-found-free-vector.jpg", + translations: {}, + secretKey: "4f3c9d8a7b6e5d4c3b2a1f0e9d8c7b6a5e4d3c2b1a0f9e8d7c6b5a4e3d2c1b0" +}; + +export const GlobalFunctions = { + validaForm(form: any, campos: string[], validacoes: any[]) : (boolean) { + let campoInvalido: string = ""; + for (let i = 0; i < campos.length; i++) { + let campo = campos[i]; + validacoes.forEach(val => { + if (form[campo] == val) { + campoInvalido = campo; + } + }); + } + + if (campoInvalido != "") { + alert("Preencha corretamente os campos para salvar! " + campoInvalido); + } + + return campoInvalido == ""; + } +} \ No newline at end of file diff --git a/backoffice/src/environments/environment.ts b/backoffice/src/environments/environment.ts new file mode 100644 index 0000000..a72f0a7 --- /dev/null +++ b/backoffice/src/environments/environment.ts @@ -0,0 +1,42 @@ +// This file can be replaced during build by using the `fileReplacements` array. +// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. +// The list of file replacements can be found in `angular.json`. + +export const environment = { + production: false, + api_endpoint: "http://localhost:3035/api", + currentUser: localStorage.getItem("currentUser") ? JSON.parse(localStorage.getItem("currentUser") || "") : null, + titleProject: "Maker Book", + defaultImageError: "https://static.vecteezy.com/system/resources/previews/005/337/799/non_2x/icon-image-not-found-free-vector.jpg", + translations: {}, + secretKey: "4f3c9d8a7b6e5d4c3b2a1f0e9d8c7b6a5e4d3c2b1a0f9e8d7c6b5a4e3d2c1b0" +}; + +/* + * For easier debugging in development mode, you can import the following file + * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. + * + * This import should be commented out in production mode because it will have a negative impact + * on performance if an error is thrown. + */ +// import 'zone.js/dist/zone-error'; // Included with Angular CLI. + +export const GlobalFunctions = { + validaForm(form: any, campos: string[], validacoes: any[]) : (boolean) { + let campoInvalido: string = ""; + for (let i = 0; i < campos.length; i++) { + let campo = campos[i]; + validacoes.forEach(val => { + if (form[campo] == val) { + campoInvalido = campo; + } + }); + } + + if (campoInvalido != "") { + alert("Preencha corretamente os campos para salvar! " + campoInvalido); + } + + return campoInvalido == ""; + } +} \ No newline at end of file diff --git a/backoffice/src/favicon.ico b/backoffice/src/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..82748a3d834af83737648d388d4390ae9c77e209 GIT binary patch literal 15406 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 EKQk(jIsgCw literal 0 HcmV?d00001 diff --git a/backoffice/src/favicon.png b/backoffice/src/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..abab3cea3d36c2c14b415c4bd3ee18b4ea706eb9 GIT binary patch literal 1215 zcmV;w1VHPx(c}YY;R9HvtmuqYkRTRg6JMBKY-O^H8+XbOONguq@rXU3=7$AW15Q6t9-m+4yK~Ld-RdGSHi~7_Mv^?(sOpQ47b7VWxx;grpFUq*3pCw^ zv&{&y25-BM2}{Nh?1a`mV3`H8b3)D)znk9LH&HxYM8uCr>bZ_!OvX5A2ZA;ZNmkf- z@I3Xc4zfna)6(9H)8(V|jhRI0BC#B@(BbN2Ro2U_o4gK5lKE=aQLfcCF?o6>-RGTH zk1Y)X=qo8fmzRe&BO?Sryzw=@KTZ-obuWT021WAV{;e2fJI0I>s()_f^O_s%-JaAUjKZYv|24Dswo!StidS>3 zs&ZdZ8F|aH$eDZZB?Ifh5WMsbtbG9%Jsa}mIJyASjF0g396^`7j=tJ0L{G8dJUxV% zX?E6s+`#6=<5+!c2&GG5LXwQ=m52~D7<7@Gx^;?z@&aydy{Y;v-~9vgthvM`#oUMX z9|7E{&c`sZ2(Nt)(G!oN(L^G9{=|8D7=!Yhyk2sN6*ETT(I+!=6v(o~&Vv_-HfY(k zBD)^|Tk01q|7;Fpo*Vw}0Q6nhjbJom$XJg?BdA8=?fv-Lz9A;(44-^oPsbgR?fKbg zG(n#=jec5hH?w9|YCiyntu=U@URE7?9?e~Y2ScDNn2Nuy4#8|j(K`@Z-Xp>ok2YZm z{+=K4-#Lr^>CI^4=g`*U#&*0HhmgqHY`9{Fw`<_j#R|(OXsB+i;c(qyZ1Zd+nG)%2 za*US!X01l=$+5r%#{B^g>AkZ9zg)i8i-RW;z1OcX^mUV%a}7!2y{ za5#vI3wA@V*Q>7S^}#yycs%HIx=@T=E*DWzQTN6CK|linC@uYxhK71FGsjU_SV&b> zC6_N>V&%$Jq@|@%US5XX-o~a)n}VfQUPgYt1wjZVZE^8#%w{tiHrxx_V*v;_Y;0^K zB_)M|fFF8jfvv5rY}xWw2tZ&xD=SNtZMJtwNJzwL4K|~PjYozc zU=*M^KxJU=?Cc~VA=qx+Za0!7VKSLQav&_Rv9YS$-QBG|-(}>n0X!;!{tJEhzaY#& dn1LtGz+ZEgJHKu3D!Kpw002ovPDHLkV1j^RK8*kX literal 0 HcmV?d00001 diff --git a/backoffice/src/index.html b/backoffice/src/index.html new file mode 100644 index 0000000..5117ae8 --- /dev/null +++ b/backoffice/src/index.html @@ -0,0 +1,25 @@ + + + + + Maker Book + + + + + + + + + + + + + + + + + + + + diff --git a/backoffice/src/main.ts b/backoffice/src/main.ts new file mode 100644 index 0000000..0435bd2 --- /dev/null +++ b/backoffice/src/main.ts @@ -0,0 +1,13 @@ +import { enableProdMode } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + +import { AppModule } from './app/app.module'; +import { environment } from './environments/environment'; + +if (environment.production) { + enableProdMode(); +} + +platformBrowserDynamic() + .bootstrapModule(AppModule) + .catch(err => console.error(err)); diff --git a/backoffice/src/modules/app-common/app-common.module.ts b/backoffice/src/modules/app-common/app-common.module.ts new file mode 100644 index 0000000..77a37fa --- /dev/null +++ b/backoffice/src/modules/app-common/app-common.module.ts @@ -0,0 +1,31 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; + +/* Third Party */ +import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; +import { IconsModule } from '@modules/icons/icons.module'; + +const thirdParty = [IconsModule, NgbModule]; + +/* Containers */ +import * as appCommonContainers from './containers'; + +/* Components */ +import * as appCommonComponents from './components'; + +/* Guards */ +import * as appCommonGuards from './guards'; + +/* Services */ +import * as appCommonServices from './services'; +import * as authServices from '@modules/auth/services'; + +@NgModule({ + imports: [CommonModule, RouterModule, ...thirdParty], + providers: [...appCommonServices.services, ...authServices.services, ...appCommonGuards.guards], + declarations: [...appCommonContainers.containers, ...appCommonComponents.components], + exports: [...appCommonContainers.containers, ...appCommonComponents.components, ...thirdParty], +}) +export class AppCommonModule {} diff --git a/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.html b/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.html new file mode 100644 index 0000000..04a9c88 --- /dev/null +++ b/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.html @@ -0,0 +1,7 @@ +
+ + +
diff --git a/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.pug b/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.pug new file mode 100644 index 0000000..6f43bfa --- /dev/null +++ b/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.pug @@ -0,0 +1,9 @@ +.card.text-white.mb-4( + [ngClass]='background' +) + ng-content(select='.card-body') + .card-footer.d-flex.align-items-center.justify-content-between + a([routerLink]='link').small.text-white.stretched-link + | View Details + .small.text-white + fa-icon([icon]='["fas", "angle-right"]') \ No newline at end of file diff --git a/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.scss b/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.spec.ts b/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.spec.ts new file mode 100644 index 0000000..fb01a61 --- /dev/null +++ b/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { CardViewDetailsComponent } from './card-view-details.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('CardViewDetailsComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: CardViewDetailsComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, CardViewDetailsComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-card-view-details')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.ts b/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.ts new file mode 100644 index 0000000..336c883 --- /dev/null +++ b/backoffice/src/modules/app-common/components/card-view-details/card-view-details.component.ts @@ -0,0 +1,25 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-card-view-details', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './card-view-details.component.html', + styleUrls: ['card-view-details.component.scss'], +}) +export class CardViewDetailsComponent implements OnInit { + @Input() background!: string; + @Input() color!: string; + @Input() link = ''; + + customClasses: string[] = []; + + constructor() {} + ngOnInit() { + if (this.background) { + this.customClasses.push(this.background); + } + if (this.color) { + this.customClasses.push(this.color); + } + } +} diff --git a/backoffice/src/modules/app-common/components/card/card.component.html b/backoffice/src/modules/app-common/components/card/card.component.html new file mode 100644 index 0000000..9ea118b --- /dev/null +++ b/backoffice/src/modules/app-common/components/card/card.component.html @@ -0,0 +1 @@ +
diff --git a/backoffice/src/modules/app-common/components/card/card.component.pug b/backoffice/src/modules/app-common/components/card/card.component.pug new file mode 100644 index 0000000..2b8bd7e --- /dev/null +++ b/backoffice/src/modules/app-common/components/card/card.component.pug @@ -0,0 +1,6 @@ +.card.mb-4( + [ngClass]='customClasses' +) + ng-content(select='.card-header') + ng-content(select='.card-body') + ng-content(select='.card-footer') \ No newline at end of file diff --git a/backoffice/src/modules/app-common/components/card/card.component.scss b/backoffice/src/modules/app-common/components/card/card.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/app-common/components/card/card.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/app-common/components/card/card.component.spec.ts b/backoffice/src/modules/app-common/components/card/card.component.spec.ts new file mode 100644 index 0000000..a885a62 --- /dev/null +++ b/backoffice/src/modules/app-common/components/card/card.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { CardComponent } from './card.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('CardComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: CardComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, CardComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-card')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/app-common/components/card/card.component.ts b/backoffice/src/modules/app-common/components/card/card.component.ts new file mode 100644 index 0000000..d776f2d --- /dev/null +++ b/backoffice/src/modules/app-common/components/card/card.component.ts @@ -0,0 +1,24 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-card', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './card.component.html', + styleUrls: ['card.component.scss'], +}) +export class CardComponent implements OnInit { + @Input() background!: string; + @Input() color!: string; + + customClasses: string[] = []; + + constructor() {} + ngOnInit() { + if (this.background) { + this.customClasses.push(this.background); + } + if (this.color) { + this.customClasses.push(this.color); + } + } +} diff --git a/backoffice/src/modules/app-common/components/index.ts b/backoffice/src/modules/app-common/components/index.ts new file mode 100644 index 0000000..eeaeb4a --- /dev/null +++ b/backoffice/src/modules/app-common/components/index.ts @@ -0,0 +1,7 @@ +import { CardViewDetailsComponent } from './card-view-details/card-view-details.component'; +import { CardComponent } from './card/card.component'; + +export const components = [CardComponent, CardViewDetailsComponent]; + +export * from './card/card.component'; +export * from './card-view-details/card-view-details.component'; diff --git a/backoffice/src/modules/app-common/containers/index.ts b/backoffice/src/modules/app-common/containers/index.ts new file mode 100644 index 0000000..b0cefa7 --- /dev/null +++ b/backoffice/src/modules/app-common/containers/index.ts @@ -0,0 +1 @@ +export const containers = []; diff --git a/backoffice/src/modules/app-common/guards/app-common.guard.spec.ts b/backoffice/src/modules/app-common/guards/app-common.guard.spec.ts new file mode 100644 index 0000000..a84b05b --- /dev/null +++ b/backoffice/src/modules/app-common/guards/app-common.guard.spec.ts @@ -0,0 +1,23 @@ +import { TestBed } from '@angular/core/testing'; + +import { AppCommonGuard } from './app-common.guard'; + +describe('App Common Guards', () => { + let appCommonGuard: AppCommonGuard; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [AppCommonGuard], + }); + appCommonGuard = TestBed.inject(AppCommonGuard); + }); + + describe('canActivate', () => { + it('should return an Observable', () => { + appCommonGuard.canActivate().subscribe(response => { + expect(response).toEqual(true); + }); + }); + }); +}); diff --git a/backoffice/src/modules/app-common/guards/app-common.guard.ts b/backoffice/src/modules/app-common/guards/app-common.guard.ts new file mode 100644 index 0000000..dbfeece --- /dev/null +++ b/backoffice/src/modules/app-common/guards/app-common.guard.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class AppCommonGuard implements CanActivate { + canActivate(): Observable { + return of(true); + } +} diff --git a/backoffice/src/modules/app-common/guards/index.ts b/backoffice/src/modules/app-common/guards/index.ts new file mode 100644 index 0000000..2da7a6a --- /dev/null +++ b/backoffice/src/modules/app-common/guards/index.ts @@ -0,0 +1,5 @@ +import { AppCommonGuard } from './app-common.guard'; + +export const guards = [AppCommonGuard]; + +export * from './app-common.guard'; diff --git a/backoffice/src/modules/app-common/models/app-common.model.ts b/backoffice/src/modules/app-common/models/app-common.model.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/backoffice/src/modules/app-common/models/app-common.model.ts @@ -0,0 +1 @@ +export {}; diff --git a/backoffice/src/modules/app-common/models/index.ts b/backoffice/src/modules/app-common/models/index.ts new file mode 100644 index 0000000..6b7156f --- /dev/null +++ b/backoffice/src/modules/app-common/models/index.ts @@ -0,0 +1 @@ +export * from './app-common.model'; diff --git a/backoffice/src/modules/app-common/services/app-common.service.spec.ts b/backoffice/src/modules/app-common/services/app-common.service.spec.ts new file mode 100644 index 0000000..7a19d24 --- /dev/null +++ b/backoffice/src/modules/app-common/services/app-common.service.spec.ts @@ -0,0 +1,22 @@ +import { TestBed } from '@angular/core/testing'; + +import { AppCommonService } from './app-common.service'; + +describe('AppCommonService', () => { + let appCommonService: AppCommonService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [AppCommonService], + }); + appCommonService = TestBed.inject(AppCommonService); + }); + + describe('getAppCommon$', () => { + it('should return Observable', () => { + appCommonService.getAppCommon$().subscribe(response => { + expect(response).toEqual({}); + }); + }); + }); +}); diff --git a/backoffice/src/modules/app-common/services/app-common.service.ts b/backoffice/src/modules/app-common/services/app-common.service.ts new file mode 100644 index 0000000..e33bca1 --- /dev/null +++ b/backoffice/src/modules/app-common/services/app-common.service.ts @@ -0,0 +1,12 @@ +import { Injectable } from '@angular/core'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class AppCommonService { + constructor() {} + + getAppCommon$(): Observable<{}> { + return of({}); + } + +} diff --git a/backoffice/src/modules/app-common/services/index.ts b/backoffice/src/modules/app-common/services/index.ts new file mode 100644 index 0000000..b63d994 --- /dev/null +++ b/backoffice/src/modules/app-common/services/index.ts @@ -0,0 +1,5 @@ +import { AppCommonService } from './app-common.service'; + +export const services = [AppCommonService]; + +export * from './app-common.service'; diff --git a/backoffice/src/modules/auth/auth-routing.module.ts b/backoffice/src/modules/auth/auth-routing.module.ts new file mode 100644 index 0000000..dd4f220 --- /dev/null +++ b/backoffice/src/modules/auth/auth-routing.module.ts @@ -0,0 +1,52 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { AuthModule } from './auth.module'; + +/* Containers */ +import * as authContainers from './containers'; + +/* Guards */ +import * as authGuards from './guards'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + pathMatch: 'full', + redirectTo: 'login', + }, + { + path: 'login', + canActivate: [], + component: authContainers.LoginComponent, + data: { + title: 'Pages Login - SB Admin Angular', + } as SBRouteData, + }, + { + path: 'register', + canActivate: [], + component: authContainers.RegisterComponent, + data: { + title: 'Pages Register - SB Admin Angular', + } as SBRouteData, + }, + { + path: 'forgot-password', + canActivate: [], + component: authContainers.ForgotPasswordComponent, + data: { + title: 'Pages Forgot Password - SB Admin Angular', + } as SBRouteData, + }, +]; + +@NgModule({ + imports: [AuthModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class AuthRoutingModule {} diff --git a/backoffice/src/modules/auth/auth.module.ts b/backoffice/src/modules/auth/auth.module.ts new file mode 100644 index 0000000..02648a1 --- /dev/null +++ b/backoffice/src/modules/auth/auth.module.ts @@ -0,0 +1,36 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as authComponents from './components'; + +/* Containers */ +import * as authContainers from './containers'; + +/* Guards */ +import * as authGuards from './guards'; + +/* Services */ +import * as authServices from './services'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + ], + providers: [...authServices.services, ...authGuards.guards], + declarations: [...authContainers.containers, ...authComponents.components], + exports: [...authContainers.containers, ...authComponents.components], +}) +export class AuthModule {} diff --git a/backoffice/src/modules/auth/components/index.ts b/backoffice/src/modules/auth/components/index.ts new file mode 100644 index 0000000..957924b --- /dev/null +++ b/backoffice/src/modules/auth/components/index.ts @@ -0,0 +1 @@ +export const components = []; diff --git a/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.html b/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.html new file mode 100644 index 0000000..dc39e6d --- /dev/null +++ b/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.html @@ -0,0 +1,21 @@ +
+
+
+
+

Password Recovery

+
+
Enter your email address and we will send you a link to reset your password.
+
+
+ +
+
+ +
+
+
+
diff --git a/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.pug b/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.pug new file mode 100644 index 0000000..5fe911e --- /dev/null +++ b/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.pug @@ -0,0 +1,19 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-5 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Password Recovery + .card-body + .small.mb-3.text-muted Enter your email address and we will send you a link to reset your password. + form + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-group.d-flex.align-items-center.justify-content-between.mt-4.mb-0 + a.small(routerLink='/auth/login') Return to login + a.btn.btn-primary(routerLink='/auth/login') Reset Password + .card-footer.text-center + .small + a(routerLink='/auth/register') Need an account? Sign up! diff --git a/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.scss b/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.spec.ts b/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.spec.ts new file mode 100644 index 0000000..6c9acb5 --- /dev/null +++ b/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { ForgotPasswordComponent } from './forgot-password.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('ForgotPasswordComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: ForgotPasswordComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, ForgotPasswordComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-forgot-password')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.ts b/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.ts new file mode 100644 index 0000000..12e6f0b --- /dev/null +++ b/backoffice/src/modules/auth/containers/forgot-password/forgot-password.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-forgot-password', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './forgot-password.component.html', + styleUrls: ['forgot-password.component.scss'], +}) +export class ForgotPasswordComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/auth/containers/index.ts b/backoffice/src/modules/auth/containers/index.ts new file mode 100644 index 0000000..bb14825 --- /dev/null +++ b/backoffice/src/modules/auth/containers/index.ts @@ -0,0 +1,9 @@ +import { ForgotPasswordComponent } from './forgot-password/forgot-password.component'; +import { LoginComponent } from './login/login.component'; +import { RegisterComponent } from './register/register.component'; + +export const containers = [LoginComponent, RegisterComponent, ForgotPasswordComponent]; + +export * from './login/login.component'; +export * from './register/register.component'; +export * from './forgot-password/forgot-password.component'; diff --git a/backoffice/src/modules/auth/containers/login/login.component.html b/backoffice/src/modules/auth/containers/login/login.component.html new file mode 100644 index 0000000..8f642d4 --- /dev/null +++ b/backoffice/src/modules/auth/containers/login/login.component.html @@ -0,0 +1,24 @@ +
+
+
+
+

Login

+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
diff --git a/backoffice/src/modules/auth/containers/login/login.component.pug b/backoffice/src/modules/auth/containers/login/login.component.pug new file mode 100644 index 0000000..96a7610 --- /dev/null +++ b/backoffice/src/modules/auth/containers/login/login.component.pug @@ -0,0 +1,25 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-5 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Login + .card-body + form + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', placeholder='Enter email address') + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .form-group + .custom-control.custom-checkbox + input#rememberPasswordCheck.custom-control-input(type='checkbox') + label.custom-control-label(for='rememberPasswordCheck') Remember password + .form-group.d-flex.align-items-center.justify-content-between.mt-4.mb-0 + a.small(routerLink='/auth/forgot-password') Forgot Password? + a.btn.btn-primary(routerLink='/dashboard') Login + .card-footer.text-center + .small + a(routerLink='/auth/register') Need an account? Sign up! \ No newline at end of file diff --git a/backoffice/src/modules/auth/containers/login/login.component.scss b/backoffice/src/modules/auth/containers/login/login.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/auth/containers/login/login.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/auth/containers/login/login.component.spec.ts b/backoffice/src/modules/auth/containers/login/login.component.spec.ts new file mode 100644 index 0000000..c43ee13 --- /dev/null +++ b/backoffice/src/modules/auth/containers/login/login.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { LoginComponent } from './login.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('LoginComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: LoginComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, LoginComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-login')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/auth/containers/login/login.component.ts b/backoffice/src/modules/auth/containers/login/login.component.ts new file mode 100644 index 0000000..ba09d67 --- /dev/null +++ b/backoffice/src/modules/auth/containers/login/login.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-login', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './login.component.html', + styleUrls: ['login.component.scss'], +}) +export class LoginComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/auth/containers/register/register.component.html b/backoffice/src/modules/auth/containers/register/register.component.html new file mode 100644 index 0000000..5cbe32e --- /dev/null +++ b/backoffice/src/modules/auth/containers/register/register.component.html @@ -0,0 +1,36 @@ +
+
+
+
+

Create Account

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
diff --git a/backoffice/src/modules/auth/containers/register/register.component.pug b/backoffice/src/modules/auth/containers/register/register.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/modules/auth/containers/register/register.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/modules/auth/containers/register/register.component.scss b/backoffice/src/modules/auth/containers/register/register.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/auth/containers/register/register.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/auth/containers/register/register.component.spec.ts b/backoffice/src/modules/auth/containers/register/register.component.spec.ts new file mode 100644 index 0000000..023094d --- /dev/null +++ b/backoffice/src/modules/auth/containers/register/register.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { RegisterComponent } from './register.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('RegisterComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: RegisterComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, RegisterComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-register')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/auth/containers/register/register.component.ts b/backoffice/src/modules/auth/containers/register/register.component.ts new file mode 100644 index 0000000..7150294 --- /dev/null +++ b/backoffice/src/modules/auth/containers/register/register.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-register', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './register.component.html', + styleUrls: ['register.component.scss'], +}) +export class RegisterComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/auth/guards/auth.guard.spec.ts b/backoffice/src/modules/auth/guards/auth.guard.spec.ts new file mode 100644 index 0000000..9d9d302 --- /dev/null +++ b/backoffice/src/modules/auth/guards/auth.guard.spec.ts @@ -0,0 +1,23 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthGuard } from './auth.guard'; + +describe('Auth Guards', () => { + let authGuard: AuthGuard; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [AuthGuard], + }); + authGuard = TestBed.inject(AuthGuard); + }); + + describe('canActivate', () => { + it('should return an Observable', () => { + authGuard.canActivate().subscribe(response => { + expect(response).toEqual(true); + }); + }); + }); +}); diff --git a/backoffice/src/modules/auth/guards/auth.guard.ts b/backoffice/src/modules/auth/guards/auth.guard.ts new file mode 100644 index 0000000..7ca67e1 --- /dev/null +++ b/backoffice/src/modules/auth/guards/auth.guard.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class AuthGuard implements CanActivate { + canActivate(): Observable { + return of(true); + } +} diff --git a/backoffice/src/modules/auth/guards/index.ts b/backoffice/src/modules/auth/guards/index.ts new file mode 100644 index 0000000..bbe4b33 --- /dev/null +++ b/backoffice/src/modules/auth/guards/index.ts @@ -0,0 +1,5 @@ +import { AuthGuard } from './auth.guard'; + +export const guards = [AuthGuard]; + +export * from './auth.guard'; diff --git a/backoffice/src/modules/auth/models/auth.model.ts b/backoffice/src/modules/auth/models/auth.model.ts new file mode 100644 index 0000000..6236233 --- /dev/null +++ b/backoffice/src/modules/auth/models/auth.model.ts @@ -0,0 +1,6 @@ +export interface User { + id: string; + firstName: string; + lastName: string; + email: string; +} diff --git a/backoffice/src/modules/auth/models/index.ts b/backoffice/src/modules/auth/models/index.ts new file mode 100644 index 0000000..4d383a7 --- /dev/null +++ b/backoffice/src/modules/auth/models/index.ts @@ -0,0 +1 @@ +export * from './auth.model'; diff --git a/backoffice/src/modules/auth/services/auth.service.spec.ts b/backoffice/src/modules/auth/services/auth.service.spec.ts new file mode 100644 index 0000000..21355b6 --- /dev/null +++ b/backoffice/src/modules/auth/services/auth.service.spec.ts @@ -0,0 +1,22 @@ +import { TestBed } from '@angular/core/testing'; + +import { AuthService } from './auth.service'; + +describe('AuthService', () => { + let authService: AuthService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [AuthService], + }); + authService = TestBed.inject(AuthService); + }); + + describe('getAuth$', () => { + it('should return Observable', () => { + authService.getAuth$().subscribe(response => { + expect(response).toEqual({}); + }); + }); + }); +}); diff --git a/backoffice/src/modules/auth/services/auth.service.ts b/backoffice/src/modules/auth/services/auth.service.ts new file mode 100644 index 0000000..35d254e --- /dev/null +++ b/backoffice/src/modules/auth/services/auth.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@angular/core'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class AuthService { + constructor() {} + + getAuth$(): Observable<{}> { + return of({}); + } +} diff --git a/backoffice/src/modules/auth/services/index.ts b/backoffice/src/modules/auth/services/index.ts new file mode 100644 index 0000000..84167ae --- /dev/null +++ b/backoffice/src/modules/auth/services/index.ts @@ -0,0 +1,7 @@ +import { AuthService } from './auth.service'; +import { UserService } from './user.service'; + +export const services = [AuthService, UserService]; + +export * from './auth.service'; +export * from './user.service'; diff --git a/backoffice/src/modules/auth/services/user.service.spec.ts b/backoffice/src/modules/auth/services/user.service.spec.ts new file mode 100644 index 0000000..3424574 --- /dev/null +++ b/backoffice/src/modules/auth/services/user.service.spec.ts @@ -0,0 +1,26 @@ +import { TestBed } from '@angular/core/testing'; +import { MockUser, User } from '@testing/mocks'; + +import { UserService } from './user.service'; + +const mockUser = new MockUser(); + +describe('UserService', () => { + let userService: UserService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [UserService], + }); + userService = TestBed.inject(UserService); + }); + + describe('getUser$', () => { + it('should return Observable', () => { + userService.user = mockUser; + userService.user$.subscribe(response => { + expect(response).toEqual(mockUser); + }); + }); + }); +}); diff --git a/backoffice/src/modules/auth/services/user.service.ts b/backoffice/src/modules/auth/services/user.service.ts new file mode 100644 index 0000000..a17ad33 --- /dev/null +++ b/backoffice/src/modules/auth/services/user.service.ts @@ -0,0 +1,26 @@ +import { Injectable } from '@angular/core'; +import { Observable, ReplaySubject } from 'rxjs'; + +import { User } from '../models'; + +const userSubject: ReplaySubject = new ReplaySubject(1); + +@Injectable() +export class UserService { + constructor() { + this.user = { + id: '123', + firstName: 'Start', + lastName: 'Bootstrap', + email: 'no-reply@startbootstrap.com', + }; + } + + set user(user: User) { + userSubject.next(user); + } + + get user$(): Observable { + return userSubject.asObservable(); + } +} diff --git a/backoffice/src/modules/charts/charts-routing.module.ts b/backoffice/src/modules/charts/charts-routing.module.ts new file mode 100644 index 0000000..f3194ab --- /dev/null +++ b/backoffice/src/modules/charts/charts-routing.module.ts @@ -0,0 +1,41 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { ChartsModule } from './charts.module'; + +/* Containers */ +import * as chartsContainers from './containers'; + +/* Guards */ +import * as chartsGuards from './guards'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + canActivate: [], + component: chartsContainers.ChartsComponent, + data: { + title: 'Charts - SB Admin Angular', + breadcrumbs: [ + { + text: 'Dashboard', + link: '/dashboard', + }, + { + text: 'Charts', + active: true, + }, + ], + } as SBRouteData, + }, +]; + +@NgModule({ + imports: [ChartsModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class ChartsRoutingModule {} diff --git a/backoffice/src/modules/charts/charts.module.ts b/backoffice/src/modules/charts/charts.module.ts new file mode 100644 index 0000000..4db7439 --- /dev/null +++ b/backoffice/src/modules/charts/charts.module.ts @@ -0,0 +1,36 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as chartsComponents from './components'; + +/* Containers */ +import * as chartsContainers from './containers'; + +/* Guards */ +import * as chartsGuards from './guards'; + +/* Services */ +import * as chartsServices from './services'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + ], + providers: [...chartsServices.services, ...chartsGuards.guards], + declarations: [...chartsContainers.containers, ...chartsComponents.components], + exports: [...chartsContainers.containers, ...chartsComponents.components], +}) +export class ChartsModule {} diff --git a/backoffice/src/modules/charts/components/charts-area/charts-area.component.html b/backoffice/src/modules/charts/components/charts-area/charts-area.component.html new file mode 100644 index 0000000..154f27e --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-area/charts-area.component.html @@ -0,0 +1 @@ + diff --git a/backoffice/src/modules/charts/components/charts-area/charts-area.component.pug b/backoffice/src/modules/charts/components/charts-area/charts-area.component.pug new file mode 100644 index 0000000..dab3d1d --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-area/charts-area.component.pug @@ -0,0 +1 @@ +canvas(#myAreaChart) \ No newline at end of file diff --git a/backoffice/src/modules/charts/components/charts-area/charts-area.component.scss b/backoffice/src/modules/charts/components/charts-area/charts-area.component.scss new file mode 100644 index 0000000..401e924 --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-area/charts-area.component.scss @@ -0,0 +1,7 @@ +@import 'styles/variables.scss'; + +:host { + display: block; + width: 100%; + height: 100%; +} \ No newline at end of file diff --git a/backoffice/src/modules/charts/components/charts-area/charts-area.component.spec.ts b/backoffice/src/modules/charts/components/charts-area/charts-area.component.spec.ts new file mode 100644 index 0000000..7fbbf42 --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-area/charts-area.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { ChartsAreaComponent } from './charts-area.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('ChartsAreaComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: ChartsAreaComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, ChartsAreaComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-charts-area')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/charts/components/charts-area/charts-area.component.ts b/backoffice/src/modules/charts/components/charts-area/charts-area.component.ts new file mode 100644 index 0000000..051ae56 --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-area/charts-area.component.ts @@ -0,0 +1,108 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + Component, + ElementRef, + OnInit, + ViewChild, +} from '@angular/core'; +import { Chart } from 'chart.js'; + +@Component({ + selector: 'sb-charts-area', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './charts-area.component.html', + styleUrls: ['charts-area.component.scss'], +}) +export class ChartsAreaComponent implements OnInit, AfterViewInit { + @ViewChild('myAreaChart') myAreaChart!: ElementRef; + chart!: Chart; + + constructor() {} + ngOnInit() {} + + ngAfterViewInit() { + this.chart = new Chart(this.myAreaChart.nativeElement, { + type: 'line', + data: { + labels: [ + 'Mar 1', + 'Mar 2', + 'Mar 3', + 'Mar 4', + 'Mar 5', + 'Mar 6', + 'Mar 7', + 'Mar 8', + 'Mar 9', + 'Mar 10', + 'Mar 11', + 'Mar 12', + 'Mar 13', + ], + datasets: [ + { + label: 'Sessions', + lineTension: 0.3, + backgroundColor: 'rgba(2,117,216,0.2)', + borderColor: 'rgba(2,117,216,1)', + pointRadius: 5, + pointBackgroundColor: 'rgba(2,117,216,1)', + pointBorderColor: 'rgba(255,255,255,0.8)', + pointHoverRadius: 5, + pointHoverBackgroundColor: 'rgba(2,117,216,1)', + pointHitRadius: 50, + pointBorderWidth: 2, + data: [ + 10000, + 30162, + 26263, + 18394, + 18287, + 28682, + 31274, + 33259, + 25849, + 24159, + 32651, + 31984, + 38451, + ], + }, + ], + }, + options: { + scales: { + xAxes: [ + { + time: { + unit: 'day', + }, + gridLines: { + display: false, + }, + ticks: { + maxTicksLimit: 7, + }, + }, + ], + yAxes: [ + { + ticks: { + min: 0, + max: 40000, + maxTicksLimit: 5, + }, + gridLines: { + color: 'rgba(0, 0, 0, .125)', + }, + }, + ], + }, + legend: { + display: false, + }, + }, + }); + } +} diff --git a/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.html b/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.html new file mode 100644 index 0000000..344dd41 --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.html @@ -0,0 +1 @@ + diff --git a/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.pug b/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.pug new file mode 100644 index 0000000..5e135d9 --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.pug @@ -0,0 +1 @@ +canvas(#myBarChart) \ No newline at end of file diff --git a/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.scss b/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.scss new file mode 100644 index 0000000..401e924 --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.scss @@ -0,0 +1,7 @@ +@import 'styles/variables.scss'; + +:host { + display: block; + width: 100%; + height: 100%; +} \ No newline at end of file diff --git a/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.spec.ts b/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.spec.ts new file mode 100644 index 0000000..b75330d --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { ChartsBarComponent } from './charts-bar.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('ChartsBarComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: ChartsBarComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, ChartsBarComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-charts-bar')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.ts b/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.ts new file mode 100644 index 0000000..fabe39a --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-bar/charts-bar.component.ts @@ -0,0 +1,72 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + Component, + ElementRef, + OnInit, + ViewChild, +} from '@angular/core'; +import { Chart } from 'chart.js'; + +@Component({ + selector: 'sb-charts-bar', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './charts-bar.component.html', + styleUrls: ['charts-bar.component.scss'], +}) +export class ChartsBarComponent implements OnInit, AfterViewInit { + @ViewChild('myBarChart') myBarChart!: ElementRef; + chart!: Chart; + + constructor() {} + ngOnInit() {} + + ngAfterViewInit() { + this.chart = new Chart(this.myBarChart.nativeElement, { + type: 'bar', + data: { + labels: ['January', 'February', 'March', 'April', 'May', 'June'], + datasets: [ + { + label: 'Revenue', + backgroundColor: 'rgba(2,117,216,1)', + borderColor: 'rgba(2,117,216,1)', + data: [4215, 5312, 6251, 7841, 9821, 14984], + }, + ], + }, + options: { + scales: { + xAxes: [ + { + time: { + unit: 'month', + }, + gridLines: { + display: false, + }, + ticks: { + maxTicksLimit: 6, + }, + }, + ], + yAxes: [ + { + ticks: { + min: 0, + max: 15000, + maxTicksLimit: 5, + }, + gridLines: { + display: true, + }, + }, + ], + }, + legend: { + display: false, + }, + }, + }); + } +} diff --git a/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.html b/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.html new file mode 100644 index 0000000..c8c3687 --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.html @@ -0,0 +1 @@ + diff --git a/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.pug b/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.pug new file mode 100644 index 0000000..c9386d9 --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.pug @@ -0,0 +1 @@ +canvas(#myPieChart) \ No newline at end of file diff --git a/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.scss b/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.scss new file mode 100644 index 0000000..401e924 --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.scss @@ -0,0 +1,7 @@ +@import 'styles/variables.scss'; + +:host { + display: block; + width: 100%; + height: 100%; +} \ No newline at end of file diff --git a/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.spec.ts b/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.spec.ts new file mode 100644 index 0000000..3cba2fa --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { ChartsPieComponent } from './charts-pie.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('ChartsPieComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: ChartsPieComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, ChartsPieComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-charts-pie')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.ts b/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.ts new file mode 100644 index 0000000..0474b89 --- /dev/null +++ b/backoffice/src/modules/charts/components/charts-pie/charts-pie.component.ts @@ -0,0 +1,38 @@ +import { + AfterViewInit, + ChangeDetectionStrategy, + Component, + ElementRef, + OnInit, + ViewChild, +} from '@angular/core'; +import { Chart } from 'chart.js'; + +@Component({ + selector: 'sb-charts-pie', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './charts-pie.component.html', + styleUrls: ['charts-pie.component.scss'], +}) +export class ChartsPieComponent implements OnInit, AfterViewInit { + @ViewChild('myPieChart') myPieChart!: ElementRef; + chart!: Chart; + + constructor() {} + ngOnInit() {} + + ngAfterViewInit() { + this.chart = new Chart(this.myPieChart.nativeElement, { + type: 'pie', + data: { + labels: ['Blue', 'Red', 'Yellow', 'Green'], + datasets: [ + { + data: [12.21, 15.58, 11.25, 8.32], + backgroundColor: ['#007bff', '#dc3545', '#ffc107', '#28a745'], + }, + ], + }, + }); + } +} diff --git a/backoffice/src/modules/charts/components/index.ts b/backoffice/src/modules/charts/components/index.ts new file mode 100644 index 0000000..d024cb1 --- /dev/null +++ b/backoffice/src/modules/charts/components/index.ts @@ -0,0 +1,9 @@ +import { ChartsAreaComponent } from './charts-area/charts-area.component'; +import { ChartsBarComponent } from './charts-bar/charts-bar.component'; +import { ChartsPieComponent } from './charts-pie/charts-pie.component'; + +export const components = [ChartsAreaComponent, ChartsBarComponent, ChartsPieComponent]; + +export * from './charts-area/charts-area.component'; +export * from './charts-bar/charts-bar.component'; +export * from './charts-pie/charts-pie.component'; diff --git a/backoffice/src/modules/charts/containers/charts/charts.component.html b/backoffice/src/modules/charts/containers/charts/charts.component.html new file mode 100644 index 0000000..8c220ff --- /dev/null +++ b/backoffice/src/modules/charts/containers/charts/charts.component.html @@ -0,0 +1,26 @@ +
Chart.js is a third party plugin that is used to generate the charts in this template. The charts below have been customized - for further customization options, please visit the official Chart.js documentation.
Area Chart Example
+
+
+
+
+
Bar Chart Example
+
+
+
+
+
Pie Chart Example
+
+
+
+
diff --git a/backoffice/src/modules/charts/containers/charts/charts.component.pug b/backoffice/src/modules/charts/containers/charts/charts.component.pug new file mode 100644 index 0000000..7064fff --- /dev/null +++ b/backoffice/src/modules/charts/containers/charts/charts.component.pug @@ -0,0 +1,35 @@ +sb-layout-dashboard + sb-dashboard-head(title='Charts', [hideBreadcrumbs]='false') + + sb-card + .card-body. + Chart.js is a third party plugin that is used to generate the charts in this template. + The charts below have been customized - for further customization options, please visit the official + Chart.js documentation. + + sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "chart-area"]') + | Area Chart Example + .card-body + sb-charts-area + .card-footer.small.text-muted Updated yesterday at 11:59 PM + + + .row + .col-lg-6 + sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "chart-bar"]') + | Bar Chart Example + .card-body + sb-charts-bar + .card-footer.small.text-muted Updated yesterday at 11:59 PM + .col-lg-6 + sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "chart-pie"]') + | Pie Chart Example + .card-body + sb-charts-pie + .card-footer.small.text-muted Updated yesterday at 11:59 PM \ No newline at end of file diff --git a/backoffice/src/modules/charts/containers/charts/charts.component.scss b/backoffice/src/modules/charts/containers/charts/charts.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/charts/containers/charts/charts.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/charts/containers/charts/charts.component.spec.ts b/backoffice/src/modules/charts/containers/charts/charts.component.spec.ts new file mode 100644 index 0000000..01abdbe --- /dev/null +++ b/backoffice/src/modules/charts/containers/charts/charts.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { ChartsComponent } from './charts.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('ChartsComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: ChartsComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, ChartsComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-charts')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/charts/containers/charts/charts.component.ts b/backoffice/src/modules/charts/containers/charts/charts.component.ts new file mode 100644 index 0000000..0f13096 --- /dev/null +++ b/backoffice/src/modules/charts/containers/charts/charts.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-charts', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './charts.component.html', + styleUrls: ['charts.component.scss'], +}) +export class ChartsComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/charts/containers/index.ts b/backoffice/src/modules/charts/containers/index.ts new file mode 100644 index 0000000..326ea66 --- /dev/null +++ b/backoffice/src/modules/charts/containers/index.ts @@ -0,0 +1,5 @@ +import { ChartsComponent } from './charts/charts.component'; + +export const containers = [ChartsComponent]; + +export * from './charts/charts.component'; diff --git a/backoffice/src/modules/charts/guards/charts.guard.spec.ts b/backoffice/src/modules/charts/guards/charts.guard.spec.ts new file mode 100644 index 0000000..88a4a7d --- /dev/null +++ b/backoffice/src/modules/charts/guards/charts.guard.spec.ts @@ -0,0 +1,23 @@ +import { TestBed } from '@angular/core/testing'; + +import { ChartsGuard } from './charts.guard'; + +describe('Charts Guards', () => { + let chartsGuard: ChartsGuard; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [ChartsGuard], + }); + chartsGuard = TestBed.inject(ChartsGuard); + }); + + describe('canActivate', () => { + it('should return an Observable', () => { + chartsGuard.canActivate().subscribe(response => { + expect(response).toEqual(true); + }); + }); + }); +}); diff --git a/backoffice/src/modules/charts/guards/charts.guard.ts b/backoffice/src/modules/charts/guards/charts.guard.ts new file mode 100644 index 0000000..67a1a1c --- /dev/null +++ b/backoffice/src/modules/charts/guards/charts.guard.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class ChartsGuard implements CanActivate { + canActivate(): Observable { + return of(true); + } +} diff --git a/backoffice/src/modules/charts/guards/index.ts b/backoffice/src/modules/charts/guards/index.ts new file mode 100644 index 0000000..dda8279 --- /dev/null +++ b/backoffice/src/modules/charts/guards/index.ts @@ -0,0 +1,5 @@ +import { ChartsGuard } from './charts.guard'; + +export const guards = [ChartsGuard]; + +export * from './charts.guard'; diff --git a/backoffice/src/modules/charts/models/charts.model.ts b/backoffice/src/modules/charts/models/charts.model.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/backoffice/src/modules/charts/models/charts.model.ts @@ -0,0 +1 @@ +export {}; diff --git a/backoffice/src/modules/charts/models/index.ts b/backoffice/src/modules/charts/models/index.ts new file mode 100644 index 0000000..3355753 --- /dev/null +++ b/backoffice/src/modules/charts/models/index.ts @@ -0,0 +1 @@ +export * from './charts.model'; diff --git a/backoffice/src/modules/charts/services/charts.service.spec.ts b/backoffice/src/modules/charts/services/charts.service.spec.ts new file mode 100644 index 0000000..1dcc1b2 --- /dev/null +++ b/backoffice/src/modules/charts/services/charts.service.spec.ts @@ -0,0 +1,22 @@ +import { TestBed } from '@angular/core/testing'; + +import { ChartsService } from './charts.service'; + +describe('ChartsService', () => { + let chartsService: ChartsService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [ChartsService], + }); + chartsService = TestBed.inject(ChartsService); + }); + + describe('getCharts$', () => { + it('should return Observable', () => { + chartsService.getCharts$().subscribe(response => { + expect(response).toEqual({}); + }); + }); + }); +}); diff --git a/backoffice/src/modules/charts/services/charts.service.ts b/backoffice/src/modules/charts/services/charts.service.ts new file mode 100644 index 0000000..d69ea78 --- /dev/null +++ b/backoffice/src/modules/charts/services/charts.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@angular/core'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class ChartsService { + constructor() {} + + getCharts$(): Observable<{}> { + return of({}); + } +} diff --git a/backoffice/src/modules/charts/services/index.ts b/backoffice/src/modules/charts/services/index.ts new file mode 100644 index 0000000..d72d88f --- /dev/null +++ b/backoffice/src/modules/charts/services/index.ts @@ -0,0 +1,5 @@ +import { ChartsService } from './charts.service'; + +export const services = [ChartsService]; + +export * from './charts.service'; diff --git a/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.html b/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.html new file mode 100644 index 0000000..ead1b22 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.html @@ -0,0 +1,14 @@ +
+
+
Primary Card
+
+
+
Warning Card
+
+
+
Success Card
+
+
+
Danger Card
+
+
diff --git a/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.pug b/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.pug new file mode 100644 index 0000000..ada9368 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.pug @@ -0,0 +1,28 @@ +.row + .col-xl-3.col-md-6 + sb-card-view-details( + link='/dashboard', + background='bg-primary' + ) + .card-body Primary Card + + .col-xl-3.col-md-6 + sb-card-view-details( + link='/dashboard', + background='bg-warning' + ) + .card-body Warning Card + + .col-xl-3.col-md-6 + sb-card-view-details( + link='/dashboard', + background='bg-success' + ) + .card-body Success Card + + .col-xl-3.col-md-6 + sb-card-view-details( + link='/dashboard', + background='bg-danger' + ) + .card-body Danger Card diff --git a/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.scss b/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.spec.ts b/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.spec.ts new file mode 100644 index 0000000..132ab2a --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { DashboardCardsComponent } from './dashboard-cards.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('DashboardCardsComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: DashboardCardsComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, DashboardCardsComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-dashboard-cards')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.ts b/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.ts new file mode 100644 index 0000000..80da2aa --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-cards/dashboard-cards.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-dashboard-cards', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './dashboard-cards.component.html', + styleUrls: ['dashboard-cards.component.scss'], +}) +export class DashboardCardsComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.html b/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.html new file mode 100644 index 0000000..eed5647 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.html @@ -0,0 +1,14 @@ +
+
+
Area Chart Example
+
+
+
+
Bar Chart Example
+
+
+
diff --git a/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.pug b/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.pug new file mode 100644 index 0000000..f951607 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.pug @@ -0,0 +1,17 @@ +.row + .col-xl-6 + sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "chart-area"]') + | Area Chart Example + .card-body + sb-charts-area + + + .col-xl-6 + sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "chart-bar"]') + | Bar Chart Example + .card-body + sb-charts-bar diff --git a/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.scss b/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.spec.ts b/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.spec.ts new file mode 100644 index 0000000..e6f69a1 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { DashboardChartsComponent } from './dashboard-charts.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('DashboardChartsComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: DashboardChartsComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, DashboardChartsComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-dashboard-charts')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.ts b/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.ts new file mode 100644 index 0000000..c337fe0 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-charts/dashboard-charts.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-dashboard-charts', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './dashboard-charts.component.html', + styleUrls: ['dashboard-charts.component.scss'], +}) +export class DashboardChartsComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.html b/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.html new file mode 100644 index 0000000..64961c9 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.html @@ -0,0 +1,4 @@ +
DataTable Example
+
diff --git a/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.pug b/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.pug new file mode 100644 index 0000000..c8a5d2b --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.pug @@ -0,0 +1,6 @@ +sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "table"]') + | DataTable Example + .card-body + sb-ng-bootstrap-table([pageSize]='4') \ No newline at end of file diff --git a/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.scss b/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.spec.ts b/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.spec.ts new file mode 100644 index 0000000..720c472 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { DashboardTablesComponent } from './dashboard-tables.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('DashboardTablesComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: DashboardTablesComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, DashboardTablesComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-dashboard-tables')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.ts b/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.ts new file mode 100644 index 0000000..a95b24e --- /dev/null +++ b/backoffice/src/modules/dashboard/components/dashboard-tables/dashboard-tables.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-dashboard-tables', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './dashboard-tables.component.html', + styleUrls: ['dashboard-tables.component.scss'], +}) +export class DashboardTablesComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/dashboard/components/index.ts b/backoffice/src/modules/dashboard/components/index.ts new file mode 100644 index 0000000..5130d97 --- /dev/null +++ b/backoffice/src/modules/dashboard/components/index.ts @@ -0,0 +1,13 @@ +import { DashboardCardsComponent } from './dashboard-cards/dashboard-cards.component'; +import { DashboardChartsComponent } from './dashboard-charts/dashboard-charts.component'; +import { DashboardTablesComponent } from './dashboard-tables/dashboard-tables.component'; + +export const components = [ + DashboardCardsComponent, + DashboardChartsComponent, + DashboardTablesComponent, +]; + +export * from './dashboard-cards/dashboard-cards.component'; +export * from './dashboard-charts/dashboard-charts.component'; +export * from './dashboard-tables/dashboard-tables.component'; diff --git a/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.html b/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.html new file mode 100644 index 0000000..c983803 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.html @@ -0,0 +1 @@ + diff --git a/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.pug b/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.pug new file mode 100644 index 0000000..d1f1821 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.pug @@ -0,0 +1,5 @@ +sb-layout-dashboard + sb-dashboard-head(title='Dashboard', [hideBreadcrumbs]='false') + sb-dashboard-cards + sb-dashboard-charts + sb-dashboard-tables diff --git a/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.scss b/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.spec.ts b/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.spec.ts new file mode 100644 index 0000000..21f3617 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { DashboardComponent } from './dashboard.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('DashboardComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: DashboardComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, DashboardComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-dashboard')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.ts b/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.ts new file mode 100644 index 0000000..3c86705 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/dashboard/dashboard.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-dashboard', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './dashboard.component.html', + styleUrls: ['dashboard.component.scss'], +}) +export class DashboardComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/dashboard/containers/index.ts b/backoffice/src/modules/dashboard/containers/index.ts new file mode 100644 index 0000000..5e076eb --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/index.ts @@ -0,0 +1,9 @@ +import { DashboardComponent } from './dashboard/dashboard.component'; +import { LightComponent } from './light/light.component'; +import { StaticComponent } from './static/static.component'; + +export const containers = [DashboardComponent, StaticComponent, LightComponent]; + +export * from './dashboard/dashboard.component'; +export * from './static/static.component'; +export * from './light/light.component'; diff --git a/backoffice/src/modules/dashboard/containers/light/light.component.html b/backoffice/src/modules/dashboard/containers/light/light.component.html new file mode 100644 index 0000000..a5733d5 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/light/light.component.html @@ -0,0 +1 @@ + diff --git a/backoffice/src/modules/dashboard/containers/light/light.component.pug b/backoffice/src/modules/dashboard/containers/light/light.component.pug new file mode 100644 index 0000000..295d36e --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/light/light.component.pug @@ -0,0 +1,5 @@ +sb-layout-dashboard([light]='true') + sb-dashboard-head(title='Dashboard Light', [hideBreadcrumbs]='false') + sb-dashboard-cards + sb-dashboard-charts + sb-dashboard-tables diff --git a/backoffice/src/modules/dashboard/containers/light/light.component.scss b/backoffice/src/modules/dashboard/containers/light/light.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/light/light.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/dashboard/containers/light/light.component.spec.ts b/backoffice/src/modules/dashboard/containers/light/light.component.spec.ts new file mode 100644 index 0000000..bb92733 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/light/light.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { LightComponent } from './light.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('LightComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: LightComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, LightComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-light')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/dashboard/containers/light/light.component.ts b/backoffice/src/modules/dashboard/containers/light/light.component.ts new file mode 100644 index 0000000..086e5c6 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/light/light.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-light', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './light.component.html', + styleUrls: ['light.component.scss'], +}) +export class LightComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/dashboard/containers/static/static.component.html b/backoffice/src/modules/dashboard/containers/static/static.component.html new file mode 100644 index 0000000..7b7b811 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/static/static.component.html @@ -0,0 +1,8 @@ +
Pie Chart Example
+
+
diff --git a/backoffice/src/modules/dashboard/containers/static/static.component.pug b/backoffice/src/modules/dashboard/containers/static/static.component.pug new file mode 100644 index 0000000..9e5cd88 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/static/static.component.pug @@ -0,0 +1,12 @@ +sb-layout-dashboard([static]='true') + sb-dashboard-head(title='Dashboard Static', [hideBreadcrumbs]='false') + sb-dashboard-cards + sb-dashboard-charts + sb-dashboard-tables + sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "chart-pie"]') + | Pie Chart Example + .card-body + sb-charts-pie + .card-footer.small.text-muted Updated yesterday at 11:59 PM \ No newline at end of file diff --git a/backoffice/src/modules/dashboard/containers/static/static.component.scss b/backoffice/src/modules/dashboard/containers/static/static.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/static/static.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/dashboard/containers/static/static.component.spec.ts b/backoffice/src/modules/dashboard/containers/static/static.component.spec.ts new file mode 100644 index 0000000..aefdf44 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/static/static.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { StaticComponent } from './static.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('StaticComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: StaticComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, StaticComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-static')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/dashboard/containers/static/static.component.ts b/backoffice/src/modules/dashboard/containers/static/static.component.ts new file mode 100644 index 0000000..3d9a171 --- /dev/null +++ b/backoffice/src/modules/dashboard/containers/static/static.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-static', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './static.component.html', + styleUrls: ['static.component.scss'], +}) +export class StaticComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/dashboard/dashboard-routing.module.ts b/backoffice/src/modules/dashboard/dashboard-routing.module.ts new file mode 100644 index 0000000..97e5a44 --- /dev/null +++ b/backoffice/src/modules/dashboard/dashboard-routing.module.ts @@ -0,0 +1,74 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { DashboardModule } from './dashboard.module'; + +/* Containers */ +import * as dashboardContainers from './containers'; + +/* Guards */ +import * as dashboardGuards from './guards'; +import { environment } from 'environments/environment'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + data: { + title: 'Dashboard - ' + environment.titleProject, + breadcrumbs: [ + { + text: 'Dashboard', + active: true, + }, + ], + } as SBRouteData, + canActivate: [], + component: dashboardContainers.DashboardComponent, + }, + { + path: 'static', + data: { + title: 'Dashboard Static - ' + environment.titleProject, + breadcrumbs: [ + { + text: 'Dashboard', + link: '/dashboard', + }, + { + text: 'Static', + active: true, + }, + ], + } as SBRouteData, + canActivate: [], + component: dashboardContainers.StaticComponent, + }, + { + path: 'light', + data: { + title: 'Dashboard Light - ' + environment.titleProject, + breadcrumbs: [ + { + text: 'Dashboard', + link: '/dashboard', + }, + { + text: 'Light', + active: true, + }, + ], + } as SBRouteData, + canActivate: [], + component: dashboardContainers.LightComponent, + }, +]; + +@NgModule({ + imports: [DashboardModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class DashboardRoutingModule {} diff --git a/backoffice/src/modules/dashboard/dashboard.module.ts b/backoffice/src/modules/dashboard/dashboard.module.ts new file mode 100644 index 0000000..05f0ce4 --- /dev/null +++ b/backoffice/src/modules/dashboard/dashboard.module.ts @@ -0,0 +1,40 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; +import { ChartsModule } from '@modules/charts/charts.module'; +import { TablesModule } from '@modules/tables/tables.module'; + +/* Components */ +import * as dashboardComponents from './components'; + +/* Containers */ +import * as dashboardContainers from './containers'; + +/* Guards */ +import * as dashboardGuards from './guards'; + +/* Services */ +import * as dashboardServices from './services'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + ChartsModule, + TablesModule, + ], + providers: [...dashboardServices.services, ...dashboardGuards.guards], + declarations: [...dashboardContainers.containers, ...dashboardComponents.components], + exports: [...dashboardContainers.containers, ...dashboardComponents.components], +}) +export class DashboardModule {} diff --git a/backoffice/src/modules/dashboard/guards/dashboard.guard.spec.ts b/backoffice/src/modules/dashboard/guards/dashboard.guard.spec.ts new file mode 100644 index 0000000..8b8522d --- /dev/null +++ b/backoffice/src/modules/dashboard/guards/dashboard.guard.spec.ts @@ -0,0 +1,23 @@ +import { TestBed } from '@angular/core/testing'; + +import { DashboardGuard } from './dashboard.guard'; + +describe('Dashboard Guards', () => { + let dashboardGuard: DashboardGuard; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [DashboardGuard], + }); + dashboardGuard = TestBed.inject(DashboardGuard); + }); + + describe('canActivate', () => { + it('should return an Observable', () => { + dashboardGuard.canActivate().subscribe(response => { + expect(response).toEqual(true); + }); + }); + }); +}); diff --git a/backoffice/src/modules/dashboard/guards/dashboard.guard.ts b/backoffice/src/modules/dashboard/guards/dashboard.guard.ts new file mode 100644 index 0000000..bb047d5 --- /dev/null +++ b/backoffice/src/modules/dashboard/guards/dashboard.guard.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class DashboardGuard implements CanActivate { + canActivate(): Observable { + return of(true); + } +} diff --git a/backoffice/src/modules/dashboard/guards/index.ts b/backoffice/src/modules/dashboard/guards/index.ts new file mode 100644 index 0000000..28f5ff7 --- /dev/null +++ b/backoffice/src/modules/dashboard/guards/index.ts @@ -0,0 +1,5 @@ +import { DashboardGuard } from './dashboard.guard'; + +export const guards = [DashboardGuard]; + +export * from './dashboard.guard'; diff --git a/backoffice/src/modules/dashboard/models/dashboard.model.ts b/backoffice/src/modules/dashboard/models/dashboard.model.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/backoffice/src/modules/dashboard/models/dashboard.model.ts @@ -0,0 +1 @@ +export {}; diff --git a/backoffice/src/modules/dashboard/models/index.ts b/backoffice/src/modules/dashboard/models/index.ts new file mode 100644 index 0000000..1866903 --- /dev/null +++ b/backoffice/src/modules/dashboard/models/index.ts @@ -0,0 +1 @@ +export * from './dashboard.model'; diff --git a/backoffice/src/modules/dashboard/services/dashboard.service.spec.ts b/backoffice/src/modules/dashboard/services/dashboard.service.spec.ts new file mode 100644 index 0000000..8cea557 --- /dev/null +++ b/backoffice/src/modules/dashboard/services/dashboard.service.spec.ts @@ -0,0 +1,22 @@ +import { TestBed } from '@angular/core/testing'; + +import { DashboardService } from './dashboard.service'; + +describe('DashboardService', () => { + let dashboardService: DashboardService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [DashboardService], + }); + dashboardService = TestBed.inject(DashboardService); + }); + + describe('getDashboard$', () => { + it('should return Observable', () => { + dashboardService.getDashboard$().subscribe(response => { + expect(response).toEqual({}); + }); + }); + }); +}); diff --git a/backoffice/src/modules/dashboard/services/dashboard.service.ts b/backoffice/src/modules/dashboard/services/dashboard.service.ts new file mode 100644 index 0000000..8e4e35b --- /dev/null +++ b/backoffice/src/modules/dashboard/services/dashboard.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@angular/core'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class DashboardService { + constructor() {} + + getDashboard$(): Observable<{}> { + return of({}); + } +} diff --git a/backoffice/src/modules/dashboard/services/index.ts b/backoffice/src/modules/dashboard/services/index.ts new file mode 100644 index 0000000..4471020 --- /dev/null +++ b/backoffice/src/modules/dashboard/services/index.ts @@ -0,0 +1,5 @@ +import { DashboardService } from './dashboard.service'; + +export const services = [DashboardService]; + +export * from './dashboard.service'; diff --git a/backoffice/src/modules/error/components/index.ts b/backoffice/src/modules/error/components/index.ts new file mode 100644 index 0000000..957924b --- /dev/null +++ b/backoffice/src/modules/error/components/index.ts @@ -0,0 +1 @@ +export const components = []; diff --git a/backoffice/src/modules/error/containers/error-401/error-401.component.html b/backoffice/src/modules/error/containers/error-401/error-401.component.html new file mode 100644 index 0000000..d43c780 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-401/error-401.component.html @@ -0,0 +1,14 @@ +
+
+
+
+

401

+

Unauthorized

+

Access to this resource is denied.

+ Return to Dashboard +
+
+
+
diff --git a/backoffice/src/modules/error/containers/error-401/error-401.component.pug b/backoffice/src/modules/error/containers/error-401/error-401.component.pug new file mode 100644 index 0000000..926db83 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-401/error-401.component.pug @@ -0,0 +1,11 @@ +sb-layout-error + .container + .row.justify-content-center + .col-lg-6 + .text-center.mt-4 + h1.display-1 401 + p.lead Unauthorized + p Access to this resource is denied. + a(routerLink='/dashboard') + fa-icon.mr-1([icon]='["fas", "arrow-left"]') + | Return to Dashboard diff --git a/backoffice/src/modules/error/containers/error-401/error-401.component.scss b/backoffice/src/modules/error/containers/error-401/error-401.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-401/error-401.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/error/containers/error-401/error-401.component.spec.ts b/backoffice/src/modules/error/containers/error-401/error-401.component.spec.ts new file mode 100644 index 0000000..b0328ac --- /dev/null +++ b/backoffice/src/modules/error/containers/error-401/error-401.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { Error401Component } from './error-401.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('Error401Component', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: Error401Component; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, Error401Component], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-error-401')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/error/containers/error-401/error-401.component.ts b/backoffice/src/modules/error/containers/error-401/error-401.component.ts new file mode 100644 index 0000000..3c26f23 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-401/error-401.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-error-401', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './error-401.component.html', + styleUrls: ['error-401.component.scss'], +}) +export class Error401Component implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/error/containers/error-404/error-404.component.html b/backoffice/src/modules/error/containers/error-404/error-404.component.html new file mode 100644 index 0000000..d1e1d88 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-404/error-404.component.html @@ -0,0 +1,13 @@ +
+
+
+
+ +

This requested URL was not found on this server.

+ Return to Dashboard +
+
+
+
diff --git a/backoffice/src/modules/error/containers/error-404/error-404.component.pug b/backoffice/src/modules/error/containers/error-404/error-404.component.pug new file mode 100644 index 0000000..d1eab07 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-404/error-404.component.pug @@ -0,0 +1,10 @@ +sb-layout-error + .container + .row.justify-content-center + .col-lg-6 + .text-center.mt-4 + img.mb-4.img-error(src='assets/img/error-404-monochrome.svg') + p.lead This requested URL was not found on this server. + a(routerLink='/dashboard') + fa-icon.mr-1([icon]='["fas", "arrow-left"]') + | Return to Dashboard diff --git a/backoffice/src/modules/error/containers/error-404/error-404.component.scss b/backoffice/src/modules/error/containers/error-404/error-404.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-404/error-404.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/error/containers/error-404/error-404.component.spec.ts b/backoffice/src/modules/error/containers/error-404/error-404.component.spec.ts new file mode 100644 index 0000000..78b5462 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-404/error-404.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { Error404Component } from './error-404.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('Error404Component', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: Error404Component; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, Error404Component], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-error-404')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/error/containers/error-404/error-404.component.ts b/backoffice/src/modules/error/containers/error-404/error-404.component.ts new file mode 100644 index 0000000..b155df8 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-404/error-404.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-error-404', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './error-404.component.html', + styleUrls: ['error-404.component.scss'], +}) +export class Error404Component implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/error/containers/error-500/error-500.component.html b/backoffice/src/modules/error/containers/error-500/error-500.component.html new file mode 100644 index 0000000..0e6dc13 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-500/error-500.component.html @@ -0,0 +1,13 @@ +
+
+
+
+

500

+

Internal Server Error

+ Return to Dashboard +
+
+
+
diff --git a/backoffice/src/modules/error/containers/error-500/error-500.component.pug b/backoffice/src/modules/error/containers/error-500/error-500.component.pug new file mode 100644 index 0000000..d6c0a0a --- /dev/null +++ b/backoffice/src/modules/error/containers/error-500/error-500.component.pug @@ -0,0 +1,10 @@ +sb-layout-error + .container + .row.justify-content-center + .col-lg-6 + .text-center.mt-4 + h1.display-1 500 + p.lead Internal Server Error + a(routerLink='/dashboard') + fa-icon.mr-1([icon]='["fas", "arrow-left"]') + | Return to Dashboard diff --git a/backoffice/src/modules/error/containers/error-500/error-500.component.scss b/backoffice/src/modules/error/containers/error-500/error-500.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-500/error-500.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/error/containers/error-500/error-500.component.spec.ts b/backoffice/src/modules/error/containers/error-500/error-500.component.spec.ts new file mode 100644 index 0000000..dc64a13 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-500/error-500.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { Error500Component } from './error-500.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('Error500Component', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: Error500Component; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, Error500Component], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-error-500')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/error/containers/error-500/error-500.component.ts b/backoffice/src/modules/error/containers/error-500/error-500.component.ts new file mode 100644 index 0000000..8a673f5 --- /dev/null +++ b/backoffice/src/modules/error/containers/error-500/error-500.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-error-500', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './error-500.component.html', + styleUrls: ['error-500.component.scss'], +}) +export class Error500Component implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/error/containers/index.ts b/backoffice/src/modules/error/containers/index.ts new file mode 100644 index 0000000..eee68b0 --- /dev/null +++ b/backoffice/src/modules/error/containers/index.ts @@ -0,0 +1,9 @@ +import { Error401Component } from './error-401/error-401.component'; +import { Error404Component } from './error-404/error-404.component'; +import { Error500Component } from './error-500/error-500.component'; + +export const containers = [Error401Component, Error404Component, Error500Component]; + +export * from './error-401/error-401.component'; +export * from './error-404/error-404.component'; +export * from './error-500/error-500.component'; diff --git a/backoffice/src/modules/error/error-routing.module.ts b/backoffice/src/modules/error/error-routing.module.ts new file mode 100644 index 0000000..e68ab85 --- /dev/null +++ b/backoffice/src/modules/error/error-routing.module.ts @@ -0,0 +1,58 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { ErrorModule } from './error.module'; + +/* Containers */ +import * as errorContainers from './containers'; + +/* Guards */ +import * as errorGuards from './guards'; +import { environment } from 'environments/environment'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + pathMatch: 'full', + redirectTo: '404', + }, + { + path: '401', + canActivate: [], + component: errorContainers.Error401Component, + data: { + title: 'Error 401 - ' + environment.titleProject, + } as SBRouteData, + }, + { + path: '404', + canActivate: [], + component: errorContainers.Error404Component, + data: { + title: 'Error 404 - ' + environment.titleProject, + } as SBRouteData, + }, + { + path: '500', + canActivate: [], + component: errorContainers.Error500Component, + data: { + title: 'Error 500 - ' + environment.titleProject, + } as SBRouteData, + }, + { + path: '**', + pathMatch: 'full', + component: errorContainers.Error404Component, + }, +]; + +@NgModule({ + imports: [ErrorModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class ErrorRoutingModule {} diff --git a/backoffice/src/modules/error/error.module.ts b/backoffice/src/modules/error/error.module.ts new file mode 100644 index 0000000..3784cd4 --- /dev/null +++ b/backoffice/src/modules/error/error.module.ts @@ -0,0 +1,36 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as errorComponents from './components'; + +/* Containers */ +import * as errorContainers from './containers'; + +/* Guards */ +import * as errorGuards from './guards'; + +/* Services */ +import * as errorServices from './services'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + ], + providers: [...errorServices.services, ...errorGuards.guards], + declarations: [...errorContainers.containers, ...errorComponents.components], + exports: [...errorContainers.containers, ...errorComponents.components], +}) +export class ErrorModule {} diff --git a/backoffice/src/modules/error/guards/error.guard.spec.ts b/backoffice/src/modules/error/guards/error.guard.spec.ts new file mode 100644 index 0000000..af72716 --- /dev/null +++ b/backoffice/src/modules/error/guards/error.guard.spec.ts @@ -0,0 +1,23 @@ +import { TestBed } from '@angular/core/testing'; + +import { ErrorGuard } from './error.guard'; + +describe('Error Guards', () => { + let errorGuard: ErrorGuard; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [ErrorGuard], + }); + errorGuard = TestBed.inject(ErrorGuard); + }); + + describe('canActivate', () => { + it('should return an Observable', () => { + errorGuard.canActivate().subscribe(response => { + expect(response).toEqual(true); + }); + }); + }); +}); diff --git a/backoffice/src/modules/error/guards/error.guard.ts b/backoffice/src/modules/error/guards/error.guard.ts new file mode 100644 index 0000000..77aa026 --- /dev/null +++ b/backoffice/src/modules/error/guards/error.guard.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class ErrorGuard implements CanActivate { + canActivate(): Observable { + return of(true); + } +} diff --git a/backoffice/src/modules/error/guards/index.ts b/backoffice/src/modules/error/guards/index.ts new file mode 100644 index 0000000..15c5582 --- /dev/null +++ b/backoffice/src/modules/error/guards/index.ts @@ -0,0 +1,5 @@ +import { ErrorGuard } from './error.guard'; + +export const guards = [ErrorGuard]; + +export * from './error.guard'; diff --git a/backoffice/src/modules/error/models/error.model.ts b/backoffice/src/modules/error/models/error.model.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/backoffice/src/modules/error/models/error.model.ts @@ -0,0 +1 @@ +export {}; diff --git a/backoffice/src/modules/error/models/index.ts b/backoffice/src/modules/error/models/index.ts new file mode 100644 index 0000000..7c152d2 --- /dev/null +++ b/backoffice/src/modules/error/models/index.ts @@ -0,0 +1 @@ +export * from './error.model'; diff --git a/backoffice/src/modules/error/services/error.service.spec.ts b/backoffice/src/modules/error/services/error.service.spec.ts new file mode 100644 index 0000000..ca88e7d --- /dev/null +++ b/backoffice/src/modules/error/services/error.service.spec.ts @@ -0,0 +1,22 @@ +import { TestBed } from '@angular/core/testing'; + +import { ErrorService } from './error.service'; + +describe('ErrorService', () => { + let errorService: ErrorService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [ErrorService], + }); + errorService = TestBed.inject(ErrorService); + }); + + describe('getError$', () => { + it('should return Observable', () => { + errorService.getError$().subscribe(response => { + expect(response).toEqual({}); + }); + }); + }); +}); diff --git a/backoffice/src/modules/error/services/error.service.ts b/backoffice/src/modules/error/services/error.service.ts new file mode 100644 index 0000000..e6e6c52 --- /dev/null +++ b/backoffice/src/modules/error/services/error.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@angular/core'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class ErrorService { + constructor() {} + + getError$(): Observable<{}> { + return of({}); + } +} diff --git a/backoffice/src/modules/error/services/index.ts b/backoffice/src/modules/error/services/index.ts new file mode 100644 index 0000000..4efce44 --- /dev/null +++ b/backoffice/src/modules/error/services/index.ts @@ -0,0 +1,5 @@ +import { ErrorService } from './error.service'; + +export const services = [ErrorService]; + +export * from './error.service'; diff --git a/backoffice/src/modules/icons/icons.font-awesome-brands.ts b/backoffice/src/modules/icons/icons.font-awesome-brands.ts new file mode 100644 index 0000000..f9fa29c --- /dev/null +++ b/backoffice/src/modules/icons/icons.font-awesome-brands.ts @@ -0,0 +1,17 @@ +/* All free solid fontawesome icons -> https://fontawesome.com/icons?d=gallery&s=brands&m=free */ + +import { + faFacebook, + faFacebookF, + faGithub, + faGoogle, + faTwitter, +} from '@fortawesome/free-brands-svg-icons'; + +export const fontAwesomeBrandsIcons = { + faGithub, + faFacebook, + faFacebookF, + faGoogle, + faTwitter, +}; diff --git a/backoffice/src/modules/icons/icons.font-awesome-regular.ts b/backoffice/src/modules/icons/icons.font-awesome-regular.ts new file mode 100644 index 0000000..5b2f608 --- /dev/null +++ b/backoffice/src/modules/icons/icons.font-awesome-regular.ts @@ -0,0 +1,7 @@ +/* All free solid fontawesome icons -> https://fontawesome.com/icons?d=gallery&s=regular&m=free */ + +import { faBell } from '@fortawesome/free-regular-svg-icons'; + +export const fontAwesomeRegularIcons = { + faBell, +}; diff --git a/backoffice/src/modules/icons/icons.font-awesome-solid.ts b/backoffice/src/modules/icons/icons.font-awesome-solid.ts new file mode 100644 index 0000000..5ae0908 --- /dev/null +++ b/backoffice/src/modules/icons/icons.font-awesome-solid.ts @@ -0,0 +1,37 @@ +/* All free solid fontawesome icons -> https://fontawesome.com/icons?d=gallery&s=solid&m=free */ + +import { + faAngleDown, + faAngleRight, + faArrowLeft, + faBars, + faBookOpen, + faChartArea, + faChartBar, + faChartPie, + faChevronDown, + faChevronUp, + faColumns, + faSearch, + faTable, + faTachometerAlt, + faUser, +} from '@fortawesome/free-solid-svg-icons'; + +export const fontAwesomeSolidIcons = { + faAngleDown, + faAngleRight, + faArrowLeft, + faBars, + faBookOpen, + faChartArea, + faChartBar, + faChartPie, + faChevronDown, + faChevronUp, + faColumns, + faSearch, + faTable, + faTachometerAlt, + faUser, +}; diff --git a/backoffice/src/modules/icons/icons.module.ts b/backoffice/src/modules/icons/icons.module.ts new file mode 100644 index 0000000..7502e59 --- /dev/null +++ b/backoffice/src/modules/icons/icons.module.ts @@ -0,0 +1,20 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontawesome'; + +import { fontAwesomeSolidIcons } from './icons.font-awesome-solid'; +import { fontAwesomeRegularIcons } from './icons.font-awesome-regular'; +import { fontAwesomeBrandsIcons } from './icons.font-awesome-brands'; + +@NgModule({ + exports: [FontAwesomeModule], +}) +export class IconsModule { + constructor(library: FaIconLibrary) { + library.addIconPacks( + fontAwesomeSolidIcons, + fontAwesomeRegularIcons, + fontAwesomeBrandsIcons + ); + } +} diff --git a/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.html b/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.html new file mode 100644 index 0000000..11d4e09 --- /dev/null +++ b/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.html @@ -0,0 +1,3 @@ + diff --git a/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.pug b/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.pug new file mode 100644 index 0000000..e29192e --- /dev/null +++ b/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.pug @@ -0,0 +1,10 @@ +ol.breadcrumb.mb-4 + li.breadcrumb-item( + *ngFor='let breadcrumb of breadcrumbs', + [ngClass]='{active: breadcrumb.active}' + ) + a( + *ngIf='breadcrumb.link', + [routerLink]='breadcrumb.link', + ) {{breadcrumb.text}} + span(*ngIf='!breadcrumb.link') {{breadcrumb.text}} diff --git a/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.scss b/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.spec.ts b/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.spec.ts new file mode 100644 index 0000000..0710636 --- /dev/null +++ b/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.spec.ts @@ -0,0 +1,59 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { NavigationService } from '@modules/navigation/services'; +import { NavigationServiceStub } from '@testing/stubs'; + +import { BreadcrumbsComponent } from './breadcrumbs.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('BreadcrumbsComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: BreadcrumbsComponent; + let componentDE: DebugElement; + let componentNE: Element; + + let navigationService: NavigationService; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, BreadcrumbsComponent], + imports: [NoopAnimationsModule], + providers: [{ provide: NavigationService, useValue: NavigationServiceStub }], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + navigationService = TestBed.inject(NavigationService); + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-breadcrumbs')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.ts b/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.ts new file mode 100644 index 0000000..d92bd23 --- /dev/null +++ b/backoffice/src/modules/navigation/components/breadcrumbs/breadcrumbs.component.ts @@ -0,0 +1,28 @@ +import { ChangeDetectionStrategy, Component, OnDestroy, OnInit } from '@angular/core'; +import { Breadcrumb } from '@modules/navigation/models'; +import { NavigationService } from '@modules/navigation/services'; +import { Subscription } from 'rxjs'; + +@Component({ + selector: 'sb-breadcrumbs', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './breadcrumbs.component.html', + styleUrls: ['breadcrumbs.component.scss'], +}) +export class BreadcrumbsComponent implements OnInit, OnDestroy { + subscription: Subscription = new Subscription(); + breadcrumbs!: Breadcrumb[]; + + constructor(public navigationService: NavigationService) {} + ngOnInit() { + this.subscription.add( + this.navigationService.routeData$().subscribe(routeData => { + this.breadcrumbs = routeData.breadcrumbs; + }) + ); + } + + ngOnDestroy() { + this.subscription.unsubscribe(); + } +} diff --git a/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.html b/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.html new file mode 100644 index 0000000..385cb45 --- /dev/null +++ b/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.html @@ -0,0 +1,2 @@ +

{{title}}

+ diff --git a/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.pug b/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.pug new file mode 100644 index 0000000..c1a2ba4 --- /dev/null +++ b/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.pug @@ -0,0 +1,2 @@ +h1.mt-4 {{title}} +sb-breadcrumbs(*ngIf='!hideBreadcrumbs') \ No newline at end of file diff --git a/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.scss b/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.spec.ts b/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.spec.ts new file mode 100644 index 0000000..cf0eb9a --- /dev/null +++ b/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { DashboardHeadComponent } from './dashboard-head.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('DashboardHeadComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: DashboardHeadComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, DashboardHeadComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-dashboard-head')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.ts b/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.ts new file mode 100644 index 0000000..8edc6f5 --- /dev/null +++ b/backoffice/src/modules/navigation/components/dashboard-head/dashboard-head.component.ts @@ -0,0 +1,15 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-dashboard-head', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './dashboard-head.component.html', + styleUrls: ['dashboard-head.component.scss'], +}) +export class DashboardHeadComponent implements OnInit { + @Input() title!: string; + @Input() hideBreadcrumbs = false; + + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/navigation/components/index.ts b/backoffice/src/modules/navigation/components/index.ts new file mode 100644 index 0000000..be7f451 --- /dev/null +++ b/backoffice/src/modules/navigation/components/index.ts @@ -0,0 +1,16 @@ +import { BreadcrumbsComponent } from './breadcrumbs/breadcrumbs.component'; +import { DashboardHeadComponent } from './dashboard-head/dashboard-head.component'; +import { SideNavItemComponent } from './side-nav-item/side-nav-item.component'; +import { TopNavUserComponent } from './top-nav-user/top-nav-user.component'; + +export const components = [ + SideNavItemComponent, + BreadcrumbsComponent, + DashboardHeadComponent, + TopNavUserComponent, +]; + +export * from './side-nav-item/side-nav-item.component'; +export * from './breadcrumbs/breadcrumbs.component'; +export * from './dashboard-head/dashboard-head.component'; +export * from './top-nav-user/top-nav-user.component'; diff --git a/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.html b/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.html new file mode 100644 index 0000000..4a76813 --- /dev/null +++ b/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.html @@ -0,0 +1,6 @@ + + {{sideNavItem.text}} +
+ diff --git a/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.pug b/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.pug new file mode 100644 index 0000000..23b3c3e --- /dev/null +++ b/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.pug @@ -0,0 +1,18 @@ +a.nav-link( + [routerLink]='sideNavItem.link', + (click)='expanded = !expanded', + [ngClass]='{active: isActive, collapsed: !expanded}' +) + .sb-nav-link-icon(*ngIf='sideNavItem.icon') + fa-icon([icon]='["fas", sideNavItem.icon]') + | {{sideNavItem.text}} + .sb-sidenav-collapse-arrow + fa-icon( + *ngIf='sideNavItem.submenu', + [icon]="['fas', 'angle-down']" + ).ml-auto +nav.sb-sidenav-menu-nested.nav(*ngIf='sideNavItem.submenu && expanded') + sb-side-nav-item.submenu( + *ngFor='let submenuItem of sideNavItem.submenu', + [sideNavItem]='submenuItem' + ) diff --git a/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.scss b/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.spec.ts b/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.spec.ts new file mode 100644 index 0000000..ab1f907 --- /dev/null +++ b/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { MockSideNavItem } from '@testing/mocks/navigation'; + +import { SideNavItemComponent } from './side-nav-item.component'; + +const mockSideNavItem = new MockSideNavItem(); + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + sideNavItem = mockSideNavItem; + // someFunction(event: Event) {} +} + +describe('SideNavItemComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: SideNavItemComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, SideNavItemComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-side-nav-item')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.ts b/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.ts new file mode 100644 index 0000000..385c4d2 --- /dev/null +++ b/backoffice/src/modules/navigation/components/side-nav-item/side-nav-item.component.ts @@ -0,0 +1,19 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; +import { SBRouteData, SideNavItem } from '@modules/navigation/models'; + +@Component({ + selector: 'sb-side-nav-item', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './side-nav-item.component.html', + styleUrls: ['side-nav-item.component.scss'], +}) +export class SideNavItemComponent implements OnInit { + @Input() sideNavItem!: SideNavItem; + @Input() isActive!: boolean; + + expanded = false; + routeData!: SBRouteData; + + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.html b/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.html new file mode 100644 index 0000000..e7c77f5 --- /dev/null +++ b/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.html @@ -0,0 +1,15 @@ + diff --git a/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.pug b/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.pug new file mode 100644 index 0000000..15a14ad --- /dev/null +++ b/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.pug @@ -0,0 +1,30 @@ +li.nav-item.dropdown.dropdown-user.no-caret( + *ngIf='userService.user$ | async as user', + ngbDropdown, + placement='bottom-right', + display='dynamic' +) + a#userDropdown.nav-link.dropdown-toggle( + ngbDropdownToggle, + data-cy='userMenu', + role='button', + aria-haspopup='true', + aria-expanded='false' + ) + fa-icon([icon]='["fas", "user"]') + .dropdown-menu.dropdown-menu-right( + ngbDropdownMenu, + aria-labelledby='dropdownUser' + ) + h6.dropdown-header + .dropdown-user-details + .dropdown-user-details-name {{ user.firstName }} {{ user.lastName }} + .dropdown-user-details-email {{ user.email }} + .dropdown-divider + a.dropdown-item(routerLink='/dashboard') + | Settings + a.dropdown-item(routerLink='/dashboard') + | Activity Log + .dropdown-divider + a.dropdown-item(routerLink='/dashboard') + | Logout diff --git a/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.scss b/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.scss new file mode 100644 index 0000000..5851178 --- /dev/null +++ b/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.scss @@ -0,0 +1,5 @@ +@import 'styles/variables.scss'; + +#userDropdown { + cursor: pointer; +} \ No newline at end of file diff --git a/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.spec.ts b/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.spec.ts new file mode 100644 index 0000000..2ad7367 --- /dev/null +++ b/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { TopNavUserComponent } from './top-nav-user.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('TopNavUserComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: TopNavUserComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, TopNavUserComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sbpro-top-nav-user')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.ts b/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.ts new file mode 100644 index 0000000..33538f0 --- /dev/null +++ b/backoffice/src/modules/navigation/components/top-nav-user/top-nav-user.component.ts @@ -0,0 +1,13 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { UserService } from '@modules/auth/services'; + +@Component({ + selector: 'sb-top-nav-user', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './top-nav-user.component.html', + styleUrls: ['top-nav-user.component.scss'], +}) +export class TopNavUserComponent implements OnInit { + constructor(public userService: UserService) {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/navigation/containers/footer/footer.component.html b/backoffice/src/modules/navigation/containers/footer/footer.component.html new file mode 100644 index 0000000..0d8fe24 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/footer/footer.component.html @@ -0,0 +1,8 @@ + diff --git a/backoffice/src/modules/navigation/containers/footer/footer.component.pug b/backoffice/src/modules/navigation/containers/footer/footer.component.pug new file mode 100644 index 0000000..ff54b20 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/footer/footer.component.pug @@ -0,0 +1,8 @@ +footer.py-4.bg-light.mt-auto + .container-fluid + .d-flex.align-items-center.justify-content-between.small + .text-muted + | Copyright © Your Website 2020 + div + a(href='#') Privacy Policy · + a(href='#') Terms & Conditions diff --git a/backoffice/src/modules/navigation/containers/footer/footer.component.scss b/backoffice/src/modules/navigation/containers/footer/footer.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/footer/footer.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/navigation/containers/footer/footer.component.spec.ts b/backoffice/src/modules/navigation/containers/footer/footer.component.spec.ts new file mode 100644 index 0000000..dc2f353 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/footer/footer.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { FooterComponent } from './footer.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('FooterComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: FooterComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, FooterComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-footer')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/navigation/containers/footer/footer.component.ts b/backoffice/src/modules/navigation/containers/footer/footer.component.ts new file mode 100644 index 0000000..bdccf8e --- /dev/null +++ b/backoffice/src/modules/navigation/containers/footer/footer.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-footer', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './footer.component.html', + styleUrls: ['footer.component.scss'], +}) +export class FooterComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/navigation/containers/index.ts b/backoffice/src/modules/navigation/containers/index.ts new file mode 100644 index 0000000..ad12357 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/index.ts @@ -0,0 +1,9 @@ +import { FooterComponent } from './footer/footer.component'; +import { SideNavComponent } from './side-nav/side-nav.component'; +import { TopNavComponent } from './top-nav/top-nav.component'; + +export const containers = [TopNavComponent, SideNavComponent, FooterComponent]; + +export * from './top-nav/top-nav.component'; +export * from './side-nav/side-nav.component'; +export * from './footer/footer.component'; diff --git a/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.html b/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.html new file mode 100644 index 0000000..d9b4611 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.html @@ -0,0 +1,14 @@ + diff --git a/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.pug b/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.pug new file mode 100644 index 0000000..4b5d190 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.pug @@ -0,0 +1,13 @@ +nav#sidenavAccordion.sb-sidenav.accordion([ngClass]='sidenavStyle') + .sb-sidenav-menu + .nav + ng-container(*ngFor='let section of sideNavSections') + .sb-sidenav-menu-heading(*ngIf='section.text') {{ section.text }} + ng-container(*ngFor='let item of section.items') + sb-side-nav-item( + [sideNavItem]='sideNavItems[item]' + ) + .sb-sidenav-footer + .small Logged in as: + span(*ngIf='userService.user$ | async as user') + | {{user.firstName}} {{user.lastName}} diff --git a/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.scss b/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.spec.ts b/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.spec.ts new file mode 100644 index 0000000..9dd8f98 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.spec.ts @@ -0,0 +1,62 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { UserService } from '@modules/auth/services'; +import { NavigationService } from '@modules/navigation/services'; +import { NavigationServiceStub, UserServiceStub } from '@testing/stubs'; + +import { SideNavComponent } from './side-nav.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('SideNavComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: SideNavComponent; + let componentDE: DebugElement; + let componentNE: Element; + + let navigationService: NavigationService; + let userService: UserService; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, SideNavComponent], + imports: [NoopAnimationsModule], + providers: [ + { provide: NavigationService, useValue: NavigationServiceStub }, + { provide: UserService, useValue: UserServiceStub }, + ], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + navigationService = TestBed.inject(NavigationService); + userService = TestBed.inject(UserService); + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-side-nav')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.ts b/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.ts new file mode 100644 index 0000000..7ef1036 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/side-nav/side-nav.component.ts @@ -0,0 +1,34 @@ +import { ChangeDetectionStrategy, Component, Input, OnDestroy, OnInit } from '@angular/core'; +import { SideNavItems, SideNavSection } from '@modules/navigation/models'; +import { NavigationService } from '@modules/navigation/services'; +import { environment } from 'environments/environment'; +import { Subscription } from 'rxjs'; + +@Component({ + selector: 'sb-side-nav', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './side-nav.component.html', + styleUrls: ['side-nav.component.scss'], +}) +export class SideNavComponent implements OnInit, OnDestroy { + @Input() sidenavStyle!: string; + @Input() sideNavItems!: SideNavItems; + @Input() sideNavSections!: SideNavSection[]; + + subscription: Subscription = new Subscription(); + routeDataSubscription!: Subscription; + + userName: string = environment.currentUser.userName; + + constructor( + public navigationService: NavigationService, + ) {} + + ngOnInit() { + + } + + ngOnDestroy() { + this.subscription.unsubscribe(); + } +} diff --git a/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.html b/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.html new file mode 100644 index 0000000..c9e89ec --- /dev/null +++ b/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.html @@ -0,0 +1,16 @@ + diff --git a/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.pug b/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.pug new file mode 100644 index 0000000..5168dfb --- /dev/null +++ b/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.pug @@ -0,0 +1,23 @@ +nav.sb-topnav.navbar.navbar-expand.navbar-dark.bg-dark + a.navbar-brand(routerLink='/dashboard') + | Start Bootstrap + button#sidebarToggle.btn.btn-link.btn-sm.order-1.order-lg-0( + data-cy='topNavToggleSideNav', + (click)='toggleSideNav()' + ) + fa-icon([icon]='["fas", "bars"]') + // Navbar Search + form.d-none.d-md-inline-block.form-inline.ml-auto.mr-0.mr-md-3.my-2.my-md-0 + .input-group + input.form-control( + type='text', + placeholder='Search for...', + aria-label='Search', + aria-describedby='basic-addon2' + ) + .input-group-append + button.btn.btn-primary(type='button') + fa-icon([icon]='["fas", "search"]') + // Navbar + ul.navbar-nav.ml-auto.ml-md-0 + sb-top-nav-user \ No newline at end of file diff --git a/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.scss b/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.spec.ts b/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.spec.ts new file mode 100644 index 0000000..b6b4519 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.spec.ts @@ -0,0 +1,56 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { NavigationService } from '@modules/navigation/services'; +import { NavigationServiceStub } from '@testing/stubs'; + +import { TopNavComponent } from './top-nav.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('TopNavComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: TopNavComponent; + let componentDE: DebugElement; + let componentNE: Element; + + let navigationService: NavigationService; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, TopNavComponent], + imports: [NoopAnimationsModule], + providers: [{ provide: NavigationService, useValue: NavigationServiceStub }], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + navigationService = TestBed.inject(NavigationService); + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-top-nav')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.ts b/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.ts new file mode 100644 index 0000000..d80f764 --- /dev/null +++ b/backoffice/src/modules/navigation/containers/top-nav/top-nav.component.ts @@ -0,0 +1,20 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { NavigationService } from '@modules/navigation/services'; +import { environment } from 'environments/environment'; + +@Component({ + selector: 'sb-top-nav', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './top-nav.component.html', + styleUrls: ['top-nav.component.scss'], +}) +export class TopNavComponent implements OnInit { + + titleProject: string = environment.titleProject; + + constructor(private navigationService: NavigationService) {} + ngOnInit() {} + toggleSideNav() { + this.navigationService.toggleSideNav(); + } +} diff --git a/backoffice/src/modules/navigation/data/index.ts b/backoffice/src/modules/navigation/data/index.ts new file mode 100644 index 0000000..af4fdc8 --- /dev/null +++ b/backoffice/src/modules/navigation/data/index.ts @@ -0,0 +1 @@ +export * from './side-nav.data'; diff --git a/backoffice/src/modules/navigation/data/side-nav.data.ts b/backoffice/src/modules/navigation/data/side-nav.data.ts new file mode 100644 index 0000000..90a5dc7 --- /dev/null +++ b/backoffice/src/modules/navigation/data/side-nav.data.ts @@ -0,0 +1,135 @@ +import { SideNavItems, SideNavSection } from '@modules/navigation/models'; + +export const sideNavSections: SideNavSection[] = [ + { + text: 'CORE', + items: ['dashboard'], + }, + /*{ + text: 'INTERFACE', + items: ['layouts', 'pages'], + }, + { + text: 'ADDONS', + items: ['charts', 'tables'], + },*/ + { + text: 'CADASTROS', + items: ['users', 'courses', 'books'], + }, +]; + +export const sideNavItems: SideNavItems = { + dashboard: { + icon: 'tachometer-alt', + text: 'Dashboard', + link: '/dashboard', + }, + /*layouts: { + icon: 'columns', + text: 'Layouts', + submenu: [ + { + text: 'Static Navigation', + link: '/dashboard/static', + }, + { + text: 'Light Sidenav', + link: '/dashboard/light', + }, + ], + }, + pages: { + icon: 'book-open', + text: 'Pages', + submenu: [ + { + text: 'Authentication', + submenu: [ + { + text: 'Login', + link: '/auth/login', + }, + { + text: 'Register', + link: '/auth/register', + }, + { + text: 'Forgot Password', + link: '/auth/forgot-password', + }, + ], + }, + { + text: 'Error', + submenu: [ + { + text: '401 Page', + link: '/error/401', + }, + { + text: '404 Page', + link: '/error/404', + }, + { + text: '500 Page', + link: '/error/500', + }, + ], + }, + ], + }, + charts: { + icon: 'chart-area', + text: 'Charts', + link: '/charts', + }, + tables: { + icon: 'table', + text: 'Tables', + link: '/tables', + },*/ + + users: { + icon: 'book-open', + text: 'Usuários', + submenu: [ + { + text: 'Listagem', + link: '/users/list', + }, + { + text: 'Cadastro', + link: '/users/input', + }, + ], + }, + courses: { + icon: 'book-open', + text: 'Cursos', + submenu: [ + { + text: 'Listagem', + link: '/courses/list', + }, + { + text: 'Cadastro', + link: '/courses/input', + }, + ], + }, + books: { + icon: 'book-open', + text: 'Livros', + submenu: [ + { + text: 'Listagem', + link: '/books/list', + }, + { + text: 'Cadastro', + link: '/books/input', + }, + ], + }, +}; diff --git a/backoffice/src/modules/navigation/guards/index.ts b/backoffice/src/modules/navigation/guards/index.ts new file mode 100644 index 0000000..49a4a7c --- /dev/null +++ b/backoffice/src/modules/navigation/guards/index.ts @@ -0,0 +1,5 @@ +import { NavigationGuard } from './navigation.guard'; + +export const guards = [NavigationGuard]; + +export * from './navigation.guard'; diff --git a/backoffice/src/modules/navigation/guards/navigation.guard.spec.ts b/backoffice/src/modules/navigation/guards/navigation.guard.spec.ts new file mode 100644 index 0000000..2105451 --- /dev/null +++ b/backoffice/src/modules/navigation/guards/navigation.guard.spec.ts @@ -0,0 +1,23 @@ +import { TestBed } from '@angular/core/testing'; + +import { NavigationGuard } from './navigation.guard'; + +describe('Navigation Guards', () => { + let navigationGuard: NavigationGuard; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [NavigationGuard], + }); + navigationGuard = TestBed.inject(NavigationGuard); + }); + + describe('canActivate', () => { + it('should return an Observable', () => { + navigationGuard.canActivate().subscribe(response => { + expect(response).toEqual(true); + }); + }); + }); +}); diff --git a/backoffice/src/modules/navigation/guards/navigation.guard.ts b/backoffice/src/modules/navigation/guards/navigation.guard.ts new file mode 100644 index 0000000..02eb6e2 --- /dev/null +++ b/backoffice/src/modules/navigation/guards/navigation.guard.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class NavigationGuard implements CanActivate { + canActivate(): Observable { + return of(true); + } +} diff --git a/backoffice/src/modules/navigation/layouts/index.ts b/backoffice/src/modules/navigation/layouts/index.ts new file mode 100644 index 0000000..441000f --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/index.ts @@ -0,0 +1,9 @@ +import { LayoutAuthComponent } from './layout-auth/layout-auth.component'; +import { LayoutDashboardComponent } from './layout-dashboard/layout-dashboard.component'; +import { LayoutErrorComponent } from './layout-error/layout-error.component'; + +export const layouts = [LayoutDashboardComponent, LayoutAuthComponent, LayoutErrorComponent]; + +export * from './layout-dashboard/layout-dashboard.component'; +export * from './layout-auth/layout-auth.component'; +export * from './layout-error/layout-error.component'; diff --git a/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.html b/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.html new file mode 100644 index 0000000..bcda7b8 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.html @@ -0,0 +1,6 @@ +
+
+
+
+ +
diff --git a/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.pug b/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.pug new file mode 100644 index 0000000..07a3741 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.pug @@ -0,0 +1,6 @@ +#layoutAuthentication.bg-primary + #layoutAuthentication_content + main + ng-content + #layoutAuthentication_footer + sb-footer \ No newline at end of file diff --git a/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.scss b/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.spec.ts b/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.spec.ts new file mode 100644 index 0000000..0f119a9 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { LayoutAuthComponent } from './layout-auth.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('LayoutAuthComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: LayoutAuthComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, LayoutAuthComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sbpro-layout-auth')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.ts b/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.ts new file mode 100644 index 0000000..dbba814 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-auth/layout-auth.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-layout-auth', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './layout-auth.component.html', + styleUrls: ['layout-auth.component.scss'], +}) +export class LayoutAuthComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.html b/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.html new file mode 100644 index 0000000..e652d5a --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.html @@ -0,0 +1,11 @@ + +
+
+
+
+
+
+ +
diff --git a/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.pug b/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.pug new file mode 100644 index 0000000..7309ef6 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.pug @@ -0,0 +1,14 @@ +span([ngClass]='{"sb-nav-fixed": !static}') + sb-top-nav + #layoutSidenav + #layoutSidenav_nav + sb-side-nav( + [sidenavStyle]='sidenavStyle', + [sideNavItems]='sideNavItems', + [sideNavSections]='sideNavSections' + ) + #layoutSidenav_content + main + .container-fluid + ng-content + sb-footer \ No newline at end of file diff --git a/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.scss b/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.spec.ts b/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.spec.ts new file mode 100644 index 0000000..37441fa --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.spec.ts @@ -0,0 +1,62 @@ +import { ChangeDetectorRef, Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { NavigationService } from '@modules/navigation/services'; +import { NavigationServiceStub } from '@testing/stubs'; + +import { LayoutDashboardComponent } from './layout-dashboard.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('LayoutDashboardComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: LayoutDashboardComponent; + let componentDE: DebugElement; + let componentNE: Element; + + let navigationService: NavigationService; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, LayoutDashboardComponent], + imports: [NoopAnimationsModule], + providers: [ + { provide: NavigationService, useValue: NavigationServiceStub }, + ChangeDetectorRef, + ], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + navigationService = TestBed.inject(NavigationService); + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-layout-dashboard')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.ts b/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.ts new file mode 100644 index 0000000..2ad071c --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-dashboard/layout-dashboard.component.ts @@ -0,0 +1,47 @@ +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + HostBinding, + Input, + OnDestroy, + OnInit, +} from '@angular/core'; +import { sideNavItems, sideNavSections } from '@modules/navigation/data'; +import { NavigationService } from '@modules/navigation/services'; +import { Subscription } from 'rxjs'; + +@Component({ + selector: 'sb-layout-dashboard', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './layout-dashboard.component.html', + styleUrls: ['layout-dashboard.component.scss'], +}) +export class LayoutDashboardComponent implements OnInit, OnDestroy { + @Input() static = false; + @Input() light = false; + @HostBinding('class.sb-sidenav-toggled') sideNavHidden = false; + subscription: Subscription = new Subscription(); + sideNavItems = sideNavItems; + sideNavSections = sideNavSections; + sidenavStyle = 'sb-sidenav-dark'; + + constructor( + public navigationService: NavigationService, + private changeDetectorRef: ChangeDetectorRef + ) {} + ngOnInit() { + if (this.light) { + this.sidenavStyle = 'sb-sidenav-light'; + } + this.subscription.add( + this.navigationService.sideNavVisible$().subscribe(isVisible => { + this.sideNavHidden = !isVisible; + this.changeDetectorRef.markForCheck(); + }) + ); + } + ngOnDestroy() { + this.subscription.unsubscribe(); + } +} diff --git a/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.html b/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.html new file mode 100644 index 0000000..a49f52f --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.html @@ -0,0 +1,6 @@ +
+
+
+
+ +
diff --git a/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.pug b/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.pug new file mode 100644 index 0000000..df32094 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.pug @@ -0,0 +1,6 @@ +#layoutError + #layoutError_content + main + ng-content + #layoutError_footer + sb-footer \ No newline at end of file diff --git a/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.scss b/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.spec.ts b/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.spec.ts new file mode 100644 index 0000000..6b18869 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { LayoutErrorComponent } from './layout-error.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('LayoutErrorComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: LayoutErrorComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, LayoutErrorComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sbpro-layout-error')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.ts b/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.ts new file mode 100644 index 0000000..43bf013 --- /dev/null +++ b/backoffice/src/modules/navigation/layouts/layout-error/layout-error.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-layout-error', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './layout-error.component.html', + styleUrls: ['layout-error.component.scss'], +}) +export class LayoutErrorComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/navigation/models/index.ts b/backoffice/src/modules/navigation/models/index.ts new file mode 100644 index 0000000..1312ea0 --- /dev/null +++ b/backoffice/src/modules/navigation/models/index.ts @@ -0,0 +1 @@ +export * from './navigation.model'; diff --git a/backoffice/src/modules/navigation/models/navigation.model.ts b/backoffice/src/modules/navigation/models/navigation.model.ts new file mode 100644 index 0000000..cb7d329 --- /dev/null +++ b/backoffice/src/modules/navigation/models/navigation.model.ts @@ -0,0 +1,27 @@ +export interface SBRouteData { + title?: string; + activeTopNav?: string; + breadcrumbs: Breadcrumb[]; +} + +export interface Breadcrumb { + text: string; + link?: string; + active?: boolean; +} + +export interface SideNavItems { + [index: string]: SideNavItem; +} + +export interface SideNavItem { + icon?: string; + text: string; + link?: string; + submenu?: SideNavItem[]; +} + +export interface SideNavSection { + text?: string; + items: string[]; +} diff --git a/backoffice/src/modules/navigation/navigation.module.ts b/backoffice/src/modules/navigation/navigation.module.ts new file mode 100644 index 0000000..587ff3f --- /dev/null +++ b/backoffice/src/modules/navigation/navigation.module.ts @@ -0,0 +1,38 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; + +/* Components */ +import * as navigationComponents from './components'; + +/* Containers */ +import * as navigationContainers from './containers'; + +/* Layouts */ +import * as appCommonLayouts from './layouts'; + +/* Guards */ +import * as navigationGuards from './guards'; + +/* Services */ +import * as navigationServices from './services'; + +@NgModule({ + imports: [CommonModule, RouterModule, AppCommonModule], + providers: [...navigationServices.services, ...navigationGuards.guards], + declarations: [ + ...navigationContainers.containers, + ...navigationComponents.components, + ...appCommonLayouts.layouts, + ], + exports: [ + ...navigationContainers.containers, + ...navigationComponents.components, + ...appCommonLayouts.layouts, + ], +}) +export class NavigationModule {} diff --git a/backoffice/src/modules/navigation/services/index.ts b/backoffice/src/modules/navigation/services/index.ts new file mode 100644 index 0000000..e225d86 --- /dev/null +++ b/backoffice/src/modules/navigation/services/index.ts @@ -0,0 +1,7 @@ +import { NavigationService } from './navigation.service'; +import { SideNavService } from './side-nav.service'; + +export const services = [NavigationService, SideNavService]; + +export * from './navigation.service'; +export * from './side-nav.service'; diff --git a/backoffice/src/modules/navigation/services/navigation.service.spec.ts b/backoffice/src/modules/navigation/services/navigation.service.spec.ts new file mode 100644 index 0000000..20b3811 --- /dev/null +++ b/backoffice/src/modules/navigation/services/navigation.service.spec.ts @@ -0,0 +1,28 @@ +import { TestBed } from '@angular/core/testing'; +import { ActivatedRoute, Router } from '@angular/router'; +import { ActivatedRouteStub, RouterStub } from '@testing/stubs'; + +import { NavigationService } from './navigation.service'; + +describe('NavigationService', () => { + let navigationService: NavigationService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [ + NavigationService, + { provide: ActivatedRoute, useValue: ActivatedRouteStub }, + { provide: Router, useValue: new RouterStub() }, + ], + }); + navigationService = TestBed.inject(NavigationService); + }); + + describe('sideNavVisible$', () => { + it('should return Observable', () => { + navigationService.sideNavVisible$().subscribe(response => { + expect(response).toEqual(true); + }); + }); + }); +}); diff --git a/backoffice/src/modules/navigation/services/navigation.service.ts b/backoffice/src/modules/navigation/services/navigation.service.ts new file mode 100644 index 0000000..0dc342f --- /dev/null +++ b/backoffice/src/modules/navigation/services/navigation.service.ts @@ -0,0 +1,46 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRoute, ChildActivationEnd, Router } from '@angular/router'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { filter } from 'rxjs/operators'; + +import { SBRouteData } from '../models'; + +@Injectable() +export class NavigationService { + _sideNavVisible$ = new BehaviorSubject(true); + _routeData$ = new BehaviorSubject({} as SBRouteData); + _currentURL$ = new BehaviorSubject(''); + + constructor(public route: ActivatedRoute, public router: Router) { + this.router.events + .pipe(filter(event => event instanceof ChildActivationEnd)) + .subscribe(event => { + let snapshot = (event as ChildActivationEnd).snapshot; + while (snapshot.firstChild !== null) { + snapshot = snapshot.firstChild; + } + this._routeData$.next(snapshot.data as SBRouteData); + this._currentURL$.next(router.url); + }); + } + + sideNavVisible$(): Observable { + return this._sideNavVisible$; + } + + toggleSideNav(visibility?: boolean) { + if (typeof visibility !== 'undefined') { + this._sideNavVisible$.next(visibility); + } else { + this._sideNavVisible$.next(!this._sideNavVisible$.value); + } + } + + routeData$(): Observable { + return this._routeData$; + } + + currentURL$(): Observable { + return this._currentURL$; + } +} diff --git a/backoffice/src/modules/navigation/services/side-nav.service.spec.ts b/backoffice/src/modules/navigation/services/side-nav.service.spec.ts new file mode 100644 index 0000000..bbd7725 --- /dev/null +++ b/backoffice/src/modules/navigation/services/side-nav.service.spec.ts @@ -0,0 +1,20 @@ +import { TestBed } from '@angular/core/testing'; + +import { SideNavService } from './side-nav.service'; + +describe('SideNavService', () => { + let sideNavService: SideNavService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [SideNavService], + }); + sideNavService = TestBed.inject(SideNavService); + }); + + describe('isExpanded', () => { + it('should return false if hash of side nav is not expanded', () => { + expect(sideNavService.isExpanded('123')).toBeFalse(); + }); + }); +}); diff --git a/backoffice/src/modules/navigation/services/side-nav.service.ts b/backoffice/src/modules/navigation/services/side-nav.service.ts new file mode 100644 index 0000000..a93117f --- /dev/null +++ b/backoffice/src/modules/navigation/services/side-nav.service.ts @@ -0,0 +1,28 @@ +import { Injectable } from '@angular/core'; +import { Subject } from 'rxjs'; + +const _expand$ = new Subject(); + +const expandedTable: { + [index: string]: boolean; +} = {}; + +@Injectable() +export class SideNavService { + constructor() {} + + get expand$() { + return _expand$; + } + + isExpanded(hash: string): boolean { + if (expandedTable[hash]) { + return true; + } + return false; + } + + setExpanded(hash: string, expanded: boolean) { + expandedTable[hash] = expanded; + } +} diff --git a/backoffice/src/modules/tables/components/index.ts b/backoffice/src/modules/tables/components/index.ts new file mode 100644 index 0000000..2acd57f --- /dev/null +++ b/backoffice/src/modules/tables/components/index.ts @@ -0,0 +1,7 @@ +import { NgBootstrapTableComponent } from './ng-bootstrap-table/ng-bootstrap-table.component'; +import { SortIconComponent } from './sort-icon/sort-icon.component'; + +export const components = [NgBootstrapTableComponent, SortIconComponent]; + +export * from './ng-bootstrap-table/ng-bootstrap-table.component'; +export * from './sort-icon/sort-icon.component'; diff --git a/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.html b/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.html new file mode 100644 index 0000000..7bc5af7 --- /dev/null +++ b/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.html @@ -0,0 +1,29 @@ +
+
Full text search: Loading...
+ + + + + + + + + + + + + + + + + +
#CountryAreaPopulation
{{ country.id }}
+
+ +
+
diff --git a/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.pug b/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.pug new file mode 100644 index 0000000..f74671b --- /dev/null +++ b/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.pug @@ -0,0 +1,80 @@ +form + .form-group.form-inline + | Full text search: + input.form-control.ml-2( + type='text', + name='searchTerm', + [(ngModel)]='countryService.searchTerm' + ) + span.ml-3(*ngIf='countryService.loading$ | async') Loading... + table.table.table-striped + thead + tr + th(scope='col') # + th( + scope='col', + sbSortable='name', + (sort)='onSort($event)' + ) + span Country + sb-sort-icon( + *ngIf='sortedColumn === "name"', + [direction]='sortedDirection' + ) + th( + scope='col', + sbSortable='area', + (sort)='onSort($event)' + ) + span Area + sb-sort-icon( + *ngIf='sortedColumn === "area"', + [direction]='sortedDirection' + ) + th( + scope='col', + sbSortable='population', + (sort)='onSort($event)' + ) + span Population + sb-sort-icon( + *ngIf='sortedColumn === "population"', + [direction]='sortedDirection' + ) + tbody + tr(*ngFor='let country of countries$ | async') + th(scope='row') {{ country.id }} + td + img.mr-2( + [src]='\'https://upload.wikimedia.org/wikipedia/commons/\' + country.flag', + style='width: 20px' + ) + ngb-highlight( + [result]='country.name', + [term]='countryService.searchTerm' + ) + td + ngb-highlight( + [result]='country.area | number', + [term]='countryService.searchTerm' + ) + td + ngb-highlight( + [result]='country.population | number', + [term]='countryService.searchTerm' + ) + .d-flex.justify-content-between.p-2 + ngb-pagination( + [collectionSize]='total$ | async', + [(page)]='countryService.page', + [pageSize]='countryService.pageSize' + ) + + select.custom-select( + style='width: auto', + name='pageSize', + [(ngModel)]='countryService.pageSize' + ) + option([ngValue]='2') 2 items per page + option([ngValue]='4') 4 items per page + option([ngValue]='6') 6 items per page \ No newline at end of file diff --git a/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.scss b/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.scss new file mode 100644 index 0000000..b2bf2c1 --- /dev/null +++ b/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.scss @@ -0,0 +1,5 @@ +@import 'styles/variables.scss'; + +thead > tr > th { + cursor: pointer; +} \ No newline at end of file diff --git a/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.spec.ts b/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.spec.ts new file mode 100644 index 0000000..62d1d38 --- /dev/null +++ b/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.spec.ts @@ -0,0 +1,54 @@ +import { DecimalPipe } from '@angular/common'; +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { NgBootstrapTableComponent } from './ng-bootstrap-table.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('NgBootstrapTableComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: NgBootstrapTableComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, NgBootstrapTableComponent], + imports: [NoopAnimationsModule], + providers: [DecimalPipe], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-ng-bootstrap-table')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.ts b/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.ts new file mode 100644 index 0000000..71b45ce --- /dev/null +++ b/backoffice/src/modules/tables/components/ng-bootstrap-table/ng-bootstrap-table.component.ts @@ -0,0 +1,49 @@ +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + Input, + OnInit, + QueryList, + ViewChildren, +} from '@angular/core'; +import { SBSortableHeaderDirective, SortEvent } from '@modules/tables/directives'; +import { Country } from '@modules/tables/models'; +import { CountryService } from '@modules/tables/services'; +import { Observable } from 'rxjs'; + +@Component({ + selector: 'sb-ng-bootstrap-table', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './ng-bootstrap-table.component.html', + styleUrls: ['ng-bootstrap-table.component.scss'], +}) +export class NgBootstrapTableComponent implements OnInit { + @Input() pageSize = 4; + + countries$!: Observable; + total$!: Observable; + sortedColumn!: string; + sortedDirection!: string; + + @ViewChildren(SBSortableHeaderDirective) headers!: QueryList; + + constructor( + public countryService: CountryService, + private changeDetectorRef: ChangeDetectorRef + ) {} + + ngOnInit() { + this.countryService.pageSize = this.pageSize; + this.countries$ = this.countryService.countries$; + this.total$ = this.countryService.total$; + } + + onSort({ column, direction }: SortEvent) { + this.sortedColumn = column; + this.sortedDirection = direction; + this.countryService.sortColumn = column; + this.countryService.sortDirection = direction; + this.changeDetectorRef.detectChanges(); + } +} diff --git a/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.html b/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.html new file mode 100644 index 0000000..3069a79 --- /dev/null +++ b/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.html @@ -0,0 +1 @@ + diff --git a/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.pug b/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.pug new file mode 100644 index 0000000..8a8657f --- /dev/null +++ b/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.pug @@ -0,0 +1,4 @@ +ng-container(*ngIf='direction === "asc"') + fa-icon([icon]='["fas", "chevron-up"]').sort-icon +ng-container(*ngIf='direction === "desc"') + fa-icon([icon]='["fas", "chevron-down"]').sort-icon diff --git a/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.scss b/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.scss new file mode 100644 index 0000000..afe9c1d --- /dev/null +++ b/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.scss @@ -0,0 +1,9 @@ +@import 'styles/variables.scss'; + +.sort-icon { + height: 0.9rem; + width: 0.9rem; + margin-left: 0.25rem; + margin-top: -0.125rem; + vertical-align: middle; +} diff --git a/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.spec.ts b/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.spec.ts new file mode 100644 index 0000000..f67b4cb --- /dev/null +++ b/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { SortIconComponent } from './sort-icon.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('SortIconComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: SortIconComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, SortIconComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-sort-icon')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.ts b/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.ts new file mode 100644 index 0000000..9c45f04 --- /dev/null +++ b/backoffice/src/modules/tables/components/sort-icon/sort-icon.component.ts @@ -0,0 +1,14 @@ +import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-sort-icon', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './sort-icon.component.html', + styleUrls: ['sort-icon.component.scss'], +}) +export class SortIconComponent implements OnInit { + @Input() direction!: string; + + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/tables/containers/index.ts b/backoffice/src/modules/tables/containers/index.ts new file mode 100644 index 0000000..6f9609f --- /dev/null +++ b/backoffice/src/modules/tables/containers/index.ts @@ -0,0 +1,5 @@ +import { TablesComponent } from './tables/tables.component'; + +export const containers = [TablesComponent]; + +export * from './tables/tables.component'; diff --git a/backoffice/src/modules/tables/containers/tables/tables.component.html b/backoffice/src/modules/tables/containers/tables/tables.component.html new file mode 100644 index 0000000..9112869 --- /dev/null +++ b/backoffice/src/modules/tables/containers/tables/tables.component.html @@ -0,0 +1,8 @@ +
The table below is adapted from ng-bootsrap. For more information, please visit the ng-bootstrap table documentation.
DataTable Example
+
diff --git a/backoffice/src/modules/tables/containers/tables/tables.component.pug b/backoffice/src/modules/tables/containers/tables/tables.component.pug new file mode 100644 index 0000000..438a4bf --- /dev/null +++ b/backoffice/src/modules/tables/containers/tables/tables.component.pug @@ -0,0 +1,12 @@ +sb-layout-dashboard + sb-dashboard-head(title='Tables', [hideBreadcrumbs]='false') + sb-card + .card-body. + The table below is adapted from ng-bootsrap. For more information, please visit the ng-bootstrap table documentation. + + sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "table"]') + | DataTable Example + .card-body + sb-ng-bootstrap-table([pageSize]='6') \ No newline at end of file diff --git a/backoffice/src/modules/tables/containers/tables/tables.component.scss b/backoffice/src/modules/tables/containers/tables/tables.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/tables/containers/tables/tables.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/tables/containers/tables/tables.component.spec.ts b/backoffice/src/modules/tables/containers/tables/tables.component.spec.ts new file mode 100644 index 0000000..54c6048 --- /dev/null +++ b/backoffice/src/modules/tables/containers/tables/tables.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { TablesComponent } from './tables.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('TablesComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: TablesComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, TablesComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-tables')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/modules/tables/containers/tables/tables.component.ts b/backoffice/src/modules/tables/containers/tables/tables.component.ts new file mode 100644 index 0000000..c9793fb --- /dev/null +++ b/backoffice/src/modules/tables/containers/tables/tables.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-tables', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './tables.component.html', + styleUrls: ['tables.component.scss'], +}) +export class TablesComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/modules/tables/data/countries.ts b/backoffice/src/modules/tables/data/countries.ts new file mode 100644 index 0000000..58a45e2 --- /dev/null +++ b/backoffice/src/modules/tables/data/countries.ts @@ -0,0 +1,95 @@ +import { Country } from '../models'; + +export const COUNTRIES: Country[] = [ + { + id: 1, + name: 'Russia', + flag: 'f/f3/Flag_of_Russia.svg', + area: 17075200, + population: 146989754, + }, + { + id: 2, + name: 'France', + flag: 'c/c3/Flag_of_France.svg', + area: 640679, + population: 64979548, + }, + { + id: 3, + name: 'Germany', + flag: 'b/ba/Flag_of_Germany.svg', + area: 357114, + population: 82114224, + }, + { + id: 4, + name: 'Portugal', + flag: '5/5c/Flag_of_Portugal.svg', + area: 92090, + population: 10329506, + }, + { + id: 5, + name: 'Canada', + flag: 'c/cf/Flag_of_Canada.svg', + area: 9976140, + population: 36624199, + }, + { + id: 6, + name: 'Vietnam', + flag: '2/21/Flag_of_Vietnam.svg', + area: 331212, + population: 95540800, + }, + { + id: 7, + name: 'Brazil', + flag: '0/05/Flag_of_Brazil.svg', + area: 8515767, + population: 209288278, + }, + { + id: 8, + name: 'Mexico', + flag: 'f/fc/Flag_of_Mexico.svg', + area: 1964375, + population: 129163276, + }, + { + id: 9, + name: 'United States', + flag: 'a/a4/Flag_of_the_United_States.svg', + area: 9629091, + population: 324459463, + }, + { + id: 10, + name: 'India', + flag: '4/41/Flag_of_India.svg', + area: 3287263, + population: 1324171354, + }, + { + id: 11, + name: 'Indonesia', + flag: '9/9f/Flag_of_Indonesia.svg', + area: 1910931, + population: 263991379, + }, + { + id: 12, + name: 'Tuvalu', + flag: '3/38/Flag_of_Tuvalu.svg', + area: 26, + population: 11097, + }, + { + id: 13, + name: 'China', + flag: 'f/fa/Flag_of_the_People%27s_Republic_of_China.svg', + area: 9596960, + population: 1409517397, + }, +]; diff --git a/backoffice/src/modules/tables/directives/index.ts b/backoffice/src/modules/tables/directives/index.ts new file mode 100644 index 0000000..c1502a5 --- /dev/null +++ b/backoffice/src/modules/tables/directives/index.ts @@ -0,0 +1,5 @@ +import { SBSortableHeaderDirective } from './sortable.directive'; + +export const directives = [SBSortableHeaderDirective]; + +export * from './sortable.directive'; diff --git a/backoffice/src/modules/tables/directives/sortable.directive.ts b/backoffice/src/modules/tables/directives/sortable.directive.ts new file mode 100644 index 0000000..660cf3a --- /dev/null +++ b/backoffice/src/modules/tables/directives/sortable.directive.ts @@ -0,0 +1,29 @@ +import { Directive, EventEmitter, HostBinding, HostListener, Input, Output } from '@angular/core'; + +export type SortDirection = 'asc' | 'desc' | ''; +const rotate: { [key: string]: SortDirection } = { asc: 'desc', desc: '', '': 'asc' }; + +export interface SortEvent { + column: string; + direction: SortDirection; +} + +@Directive({ + selector: 'th[sbSortable]', +}) +export class SBSortableHeaderDirective { + @Input() sbSortable!: string; + @Input() direction: SortDirection = ''; + @Output() sort = new EventEmitter(); + + @HostBinding('class.asc') get isAscending() { + return this.direction === 'asc'; + } + @HostBinding('class.desc') get isDescending() { + return this.direction === 'desc'; + } + @HostListener('click') rotate() { + this.direction = rotate[this.direction]; + this.sort.emit({ column: this.sbSortable, direction: this.direction }); + } +} diff --git a/backoffice/src/modules/tables/guards/index.ts b/backoffice/src/modules/tables/guards/index.ts new file mode 100644 index 0000000..c456f74 --- /dev/null +++ b/backoffice/src/modules/tables/guards/index.ts @@ -0,0 +1,5 @@ +import { TablesGuard } from './tables.guard'; + +export const guards = [TablesGuard]; + +export * from './tables.guard'; diff --git a/backoffice/src/modules/tables/guards/tables.guard.spec.ts b/backoffice/src/modules/tables/guards/tables.guard.spec.ts new file mode 100644 index 0000000..2064921 --- /dev/null +++ b/backoffice/src/modules/tables/guards/tables.guard.spec.ts @@ -0,0 +1,23 @@ +import { TestBed } from '@angular/core/testing'; + +import { TablesGuard } from './tables.guard'; + +describe('Tables Guards', () => { + let tablesGuard: TablesGuard; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [TablesGuard], + }); + tablesGuard = TestBed.inject(TablesGuard); + }); + + describe('canActivate', () => { + it('should return an Observable', () => { + tablesGuard.canActivate().subscribe(response => { + expect(response).toEqual(true); + }); + }); + }); +}); diff --git a/backoffice/src/modules/tables/guards/tables.guard.ts b/backoffice/src/modules/tables/guards/tables.guard.ts new file mode 100644 index 0000000..fc5afa3 --- /dev/null +++ b/backoffice/src/modules/tables/guards/tables.guard.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class TablesGuard implements CanActivate { + canActivate(): Observable { + return of(true); + } +} diff --git a/backoffice/src/modules/tables/models/index.ts b/backoffice/src/modules/tables/models/index.ts new file mode 100644 index 0000000..c9e6789 --- /dev/null +++ b/backoffice/src/modules/tables/models/index.ts @@ -0,0 +1 @@ +export * from './tables.model'; diff --git a/backoffice/src/modules/tables/models/tables.model.ts b/backoffice/src/modules/tables/models/tables.model.ts new file mode 100644 index 0000000..bea0b97 --- /dev/null +++ b/backoffice/src/modules/tables/models/tables.model.ts @@ -0,0 +1,8 @@ +export interface Country { + [key: string]: string | number; + id: number; + name: string; + flag: string; + area: number; + population: number; +} diff --git a/backoffice/src/modules/tables/services/country.service.spec.ts b/backoffice/src/modules/tables/services/country.service.spec.ts new file mode 100644 index 0000000..c905cc0 --- /dev/null +++ b/backoffice/src/modules/tables/services/country.service.spec.ts @@ -0,0 +1,23 @@ +import { DecimalPipe } from '@angular/common'; +import { TestBed } from '@angular/core/testing'; + +import { CountryService } from './country.service'; + +describe('CountryService', () => { + let countryService: CountryService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [CountryService, DecimalPipe], + }); + countryService = TestBed.inject(CountryService); + }); + + describe('countries$', () => { + it('should return Observable', () => { + countryService.countries$.subscribe(response => { + expect(response).toBeDefined(); + }); + }); + }); +}); diff --git a/backoffice/src/modules/tables/services/country.service.ts b/backoffice/src/modules/tables/services/country.service.ts new file mode 100644 index 0000000..8e6f53d --- /dev/null +++ b/backoffice/src/modules/tables/services/country.service.ts @@ -0,0 +1,130 @@ +import { DecimalPipe } from '@angular/common'; +import { Injectable, PipeTransform } from '@angular/core'; +import { COUNTRIES } from '@modules/tables/data/countries'; +import { SortDirection } from '@modules/tables/directives'; +import { Country } from '@modules/tables/models'; +import { BehaviorSubject, Observable, of, Subject } from 'rxjs'; +import { debounceTime, delay, switchMap, tap } from 'rxjs/operators'; + +interface SearchResult { + countries: Country[]; + total: number; +} + +interface State { + page: number; + pageSize: number; + searchTerm: string; + sortColumn: string; + sortDirection: SortDirection; +} + +function compare(v1: number | string, v2: number | string) { + return v1 < v2 ? -1 : v1 > v2 ? 1 : 0; +} + +function sort(countries: Country[], column: string, direction: string): Country[] { + if (direction === '') { + return countries; + } else { + return [...countries].sort((a, b) => { + const res = compare(a[column], b[column]); + return direction === 'asc' ? res : -res; + }); + } +} + +function matches(country: Country, term: string, pipe: PipeTransform) { + return ( + country.name.toLowerCase().includes(term.toLowerCase()) || + pipe.transform(country.area).includes(term) || + pipe.transform(country.population).includes(term) + ); +} + +@Injectable({ providedIn: 'root' }) +export class CountryService { + private _loading$ = new BehaviorSubject(true); + private _search$ = new Subject(); + private _countries$ = new BehaviorSubject([]); + private _total$ = new BehaviorSubject(0); + + private _state: State = { + page: 1, + pageSize: 4, + searchTerm: '', + sortColumn: '', + sortDirection: '', + }; + + constructor(private pipe: DecimalPipe) { + this._search$ + .pipe( + tap(() => this._loading$.next(true)), + debounceTime(120), + switchMap(() => this._search()), + delay(120), + tap(() => this._loading$.next(false)) + ) + .subscribe(result => { + this._countries$.next(result.countries); + this._total$.next(result.total); + }); + + this._search$.next(); + } + + get countries$() { + return this._countries$.asObservable(); + } + get total$() { + return this._total$.asObservable(); + } + get loading$() { + return this._loading$.asObservable(); + } + get page() { + return this._state.page; + } + set page(page: number) { + this._set({ page }); + } + get pageSize() { + return this._state.pageSize; + } + set pageSize(pageSize: number) { + this._set({ pageSize }); + } + get searchTerm() { + return this._state.searchTerm; + } + set searchTerm(searchTerm: string) { + this._set({ searchTerm }); + } + set sortColumn(sortColumn: string) { + this._set({ sortColumn }); + } + set sortDirection(sortDirection: SortDirection) { + this._set({ sortDirection }); + } + + private _set(patch: Partial) { + Object.assign(this._state, patch); + this._search$.next(); + } + + private _search(): Observable { + const { sortColumn, sortDirection, pageSize, page, searchTerm } = this._state; + + // 1. sort + let countries = sort(COUNTRIES, sortColumn, sortDirection); + + // 2. filter + countries = countries.filter(country => matches(country, searchTerm, this.pipe)); + const total = countries.length; + + // 3. paginate + countries = countries.slice((page - 1) * pageSize, (page - 1) * pageSize + pageSize); + return of({ countries, total }); + } +} diff --git a/backoffice/src/modules/tables/services/index.ts b/backoffice/src/modules/tables/services/index.ts new file mode 100644 index 0000000..e9f358e --- /dev/null +++ b/backoffice/src/modules/tables/services/index.ts @@ -0,0 +1,7 @@ +import { CountryService } from './country.service'; +import { TablesService } from './tables.service'; + +export const services = [TablesService, CountryService]; + +export * from './tables.service'; +export * from './country.service'; diff --git a/backoffice/src/modules/tables/services/tables.service.spec.ts b/backoffice/src/modules/tables/services/tables.service.spec.ts new file mode 100644 index 0000000..354a9d7 --- /dev/null +++ b/backoffice/src/modules/tables/services/tables.service.spec.ts @@ -0,0 +1,22 @@ +import { TestBed } from '@angular/core/testing'; + +import { TablesService } from './tables.service'; + +describe('TablesService', () => { + let tablesService: TablesService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [TablesService], + }); + tablesService = TestBed.inject(TablesService); + }); + + describe('getTables$', () => { + it('should return Observable', () => { + tablesService.getTables$().subscribe(response => { + expect(response).toEqual({}); + }); + }); + }); +}); diff --git a/backoffice/src/modules/tables/services/tables.service.ts b/backoffice/src/modules/tables/services/tables.service.ts new file mode 100644 index 0000000..01c32c5 --- /dev/null +++ b/backoffice/src/modules/tables/services/tables.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@angular/core'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class TablesService { + constructor() {} + + getTables$(): Observable<{}> { + return of({}); + } +} diff --git a/backoffice/src/modules/tables/tables-routing.module.ts b/backoffice/src/modules/tables/tables-routing.module.ts new file mode 100644 index 0000000..67fb940 --- /dev/null +++ b/backoffice/src/modules/tables/tables-routing.module.ts @@ -0,0 +1,41 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +/* Module */ +import { TablesModule } from './tables.module'; + +/* Containers */ +import * as tablesContainers from './containers'; + +/* Guards */ +import * as tablesGuards from './guards'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + canActivate: [], + component: tablesContainers.TablesComponent, + data: { + title: 'Tables - SB Admin Angular', + breadcrumbs: [ + { + text: 'Dashboard', + link: '/dashboard', + }, + { + text: 'Tables', + active: true, + }, + ], + } as SBRouteData, + }, +]; + +@NgModule({ + imports: [TablesModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class TablesRoutingModule {} diff --git a/backoffice/src/modules/tables/tables.module.ts b/backoffice/src/modules/tables/tables.module.ts new file mode 100644 index 0000000..ee63d94 --- /dev/null +++ b/backoffice/src/modules/tables/tables.module.ts @@ -0,0 +1,48 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule, DecimalPipe } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as tablesComponents from './components'; + +/* Containers */ +import * as tablesContainers from './containers'; + +/* Directives */ +import * as tablesDirectives from './directives'; + +/* Guards */ +import * as tablesGuards from './guards'; + +/* Services */ +import * as tablesServices from './services'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + ], + providers: [ + DecimalPipe, + ...tablesServices.services, + ...tablesGuards.guards, + ...tablesDirectives.directives, + ], + declarations: [ + ...tablesContainers.containers, + ...tablesComponents.components, + ...tablesDirectives.directives, + ], + exports: [...tablesContainers.containers, ...tablesComponents.components], +}) +export class TablesModule {} diff --git a/backoffice/src/modules/utility/components/index.ts b/backoffice/src/modules/utility/components/index.ts new file mode 100644 index 0000000..957924b --- /dev/null +++ b/backoffice/src/modules/utility/components/index.ts @@ -0,0 +1 @@ +export const components = []; diff --git a/backoffice/src/modules/utility/containers/index.ts b/backoffice/src/modules/utility/containers/index.ts new file mode 100644 index 0000000..5c94010 --- /dev/null +++ b/backoffice/src/modules/utility/containers/index.ts @@ -0,0 +1,7 @@ +import { VersionComponent } from './version/version.component'; + +export const containers = [ + VersionComponent, +]; + +export * from './version/version.component'; diff --git a/backoffice/src/modules/utility/containers/version/version.component.html b/backoffice/src/modules/utility/containers/version/version.component.html new file mode 100644 index 0000000..b00d838 --- /dev/null +++ b/backoffice/src/modules/utility/containers/version/version.component.html @@ -0,0 +1 @@ +{{version}} diff --git a/backoffice/src/modules/utility/containers/version/version.component.pug b/backoffice/src/modules/utility/containers/version/version.component.pug new file mode 100644 index 0000000..b9fd8ba --- /dev/null +++ b/backoffice/src/modules/utility/containers/version/version.component.pug @@ -0,0 +1 @@ +span {{version}} diff --git a/backoffice/src/modules/utility/containers/version/version.component.scss b/backoffice/src/modules/utility/containers/version/version.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/modules/utility/containers/version/version.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/modules/utility/containers/version/version.component.spec.ts b/backoffice/src/modules/utility/containers/version/version.component.spec.ts new file mode 100644 index 0000000..604524b --- /dev/null +++ b/backoffice/src/modules/utility/containers/version/version.component.spec.ts @@ -0,0 +1,57 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; +import { VersionComponent } from './version.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('VersionComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: VersionComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, VersionComponent], + imports: [ + NoopAnimationsModule, + ], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect( + hostComponentNE.querySelector('sbpro-version'), + ).toEqual(jasmine.anything()); + }); + +}); diff --git a/backoffice/src/modules/utility/containers/version/version.component.ts b/backoffice/src/modules/utility/containers/version/version.component.ts new file mode 100644 index 0000000..cc48842 --- /dev/null +++ b/backoffice/src/modules/utility/containers/version/version.component.ts @@ -0,0 +1,16 @@ +import { Component, OnInit } from '@angular/core'; +import { UtilityService } from '@modules/utility/services'; +import { take } from 'rxjs/operators'; + +@Component({ + selector: 'sb-version', + templateUrl: './version.component.html', + styleUrls: ['version.component.scss'], +}) +export class VersionComponent implements OnInit { + version!: string; + constructor(private utilityService: UtilityService) {} + ngOnInit() { + this.utilityService.version$.pipe(take(1)).subscribe(v => (this.version = v)); + } +} diff --git a/backoffice/src/modules/utility/guards/index.ts b/backoffice/src/modules/utility/guards/index.ts new file mode 100644 index 0000000..b8a2df9 --- /dev/null +++ b/backoffice/src/modules/utility/guards/index.ts @@ -0,0 +1,5 @@ +import { UtilityGuard } from './utility.guard'; + +export const guards = [UtilityGuard]; + +export * from './utility.guard'; diff --git a/backoffice/src/modules/utility/guards/utility.guard.spec.ts b/backoffice/src/modules/utility/guards/utility.guard.spec.ts new file mode 100644 index 0000000..c1da78e --- /dev/null +++ b/backoffice/src/modules/utility/guards/utility.guard.spec.ts @@ -0,0 +1,27 @@ +import { TestBed } from '@angular/core/testing'; + +import { UtilityGuard } from './utility.guard'; + +describe('Utility Guards', () => { + + let utilityGuard: UtilityGuard; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [ + UtilityGuard, + ], + }); + utilityGuard = TestBed.inject(UtilityGuard); + }); + + describe('canActivate', () => { + it('should return an Observable', () => { + utilityGuard.canActivate().subscribe(response => { + expect(response).toEqual(true); + }); + }); + }); + +}); diff --git a/backoffice/src/modules/utility/guards/utility.guard.ts b/backoffice/src/modules/utility/guards/utility.guard.ts new file mode 100644 index 0000000..1d8b415 --- /dev/null +++ b/backoffice/src/modules/utility/guards/utility.guard.ts @@ -0,0 +1,12 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class UtilityGuard implements CanActivate { + + canActivate(): Observable { + return of(true); + } + +} diff --git a/backoffice/src/modules/utility/models/index.ts b/backoffice/src/modules/utility/models/index.ts new file mode 100644 index 0000000..6c827c4 --- /dev/null +++ b/backoffice/src/modules/utility/models/index.ts @@ -0,0 +1 @@ +export * from './utility.model'; diff --git a/backoffice/src/modules/utility/models/utility.model.ts b/backoffice/src/modules/utility/models/utility.model.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/backoffice/src/modules/utility/models/utility.model.ts @@ -0,0 +1 @@ +export {}; diff --git a/backoffice/src/modules/utility/services/index.ts b/backoffice/src/modules/utility/services/index.ts new file mode 100644 index 0000000..47ab160 --- /dev/null +++ b/backoffice/src/modules/utility/services/index.ts @@ -0,0 +1,7 @@ +import { UtilityService } from './utility.service'; + +export const services = [ + UtilityService, +]; + +export * from './utility.service'; diff --git a/backoffice/src/modules/utility/services/utility.service.spec.ts b/backoffice/src/modules/utility/services/utility.service.spec.ts new file mode 100644 index 0000000..97d7057 --- /dev/null +++ b/backoffice/src/modules/utility/services/utility.service.spec.ts @@ -0,0 +1,38 @@ +import { HttpClient } from '@angular/common/http'; +import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; +import { TestBed } from '@angular/core/testing'; +import { take } from 'rxjs/operators'; + +import { UtilityService } from './utility.service'; + +describe('UtilityService', () => { + let utilityService: UtilityService; + + let httpClient: HttpClient; + let httpTestingController: HttpTestingController; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [HttpClientTestingModule], + providers: [UtilityService], + }); + utilityService = TestBed.inject(UtilityService); + + httpClient = TestBed.inject(HttpClient); + httpTestingController = TestBed.inject(HttpTestingController); + }); + + describe('getUtility$', () => { + it('should return Observable', () => { + utilityService.version$.pipe(take(1)).subscribe(response => { + expect(response).toEqual('a.b.c'); + }); + + const req = httpTestingController.expectOne('/assets/version'); + expect(req.request.method).toEqual('GET'); + + req.flush('a.b.c'); + httpTestingController.verify(); + }); + }); +}); diff --git a/backoffice/src/modules/utility/services/utility.service.ts b/backoffice/src/modules/utility/services/utility.service.ts new file mode 100644 index 0000000..6930539 --- /dev/null +++ b/backoffice/src/modules/utility/services/utility.service.ts @@ -0,0 +1,12 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; + +@Injectable() +export class UtilityService { + constructor(private http: HttpClient) {} + + get version$(): Observable { + return this.http.get('/assets/version', { responseType: 'text' }); + } +} diff --git a/backoffice/src/modules/utility/utility-routing.module.ts b/backoffice/src/modules/utility/utility-routing.module.ts new file mode 100644 index 0000000..2d873a5 --- /dev/null +++ b/backoffice/src/modules/utility/utility-routing.module.ts @@ -0,0 +1,27 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; + +/* Module */ +import { UtilityModule } from './utility.module'; + +/* Containers */ +import * as utilityContainers from './containers'; + +/* Guards */ +import * as utilityGuards from './guards'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + canActivate: [], + component: utilityContainers.VersionComponent, + }, +]; + +@NgModule({ + imports: [UtilityModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class UtilityRoutingModule {} diff --git a/backoffice/src/modules/utility/utility.module.ts b/backoffice/src/modules/utility/utility.module.ts new file mode 100644 index 0000000..a18b84d --- /dev/null +++ b/backoffice/src/modules/utility/utility.module.ts @@ -0,0 +1,36 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as utilityComponents from './components'; + +/* Containers */ +import * as utilityContainers from './containers'; + +/* Guards */ +import * as utilityGuards from './guards'; + +/* Services */ +import * as utilityServices from './services'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + ], + providers: [...utilityServices.services, ...utilityGuards.guards], + declarations: [...utilityContainers.containers, ...utilityComponents.components], + exports: [...utilityContainers.containers, ...utilityComponents.components], +}) +export class UtilityModule {} diff --git a/backoffice/src/pages/auth/auth-routing.module.ts b/backoffice/src/pages/auth/auth-routing.module.ts new file mode 100644 index 0000000..49ca0a4 --- /dev/null +++ b/backoffice/src/pages/auth/auth-routing.module.ts @@ -0,0 +1,58 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { AuthModule } from './auth.module'; + +/* Containers */ +import * as authContainers from './containers'; +import { environment } from 'environments/environment'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + pathMatch: 'full', + redirectTo: 'loginBook', + }, + { + path: 'login', + canActivate: [], + component: authContainers.LoginComponent, + data: { + title: 'Acesso ao ambiente Administrativo', + } as SBRouteData, + }, + { + path: 'loginBook', + canActivate: [], + component: authContainers.LoginBookComponent, + data: { + title: 'Acesso ao ambiente do Aluno', + } as SBRouteData, + }, + { + path: 'register', + canActivate: [], + component: authContainers.RegisterComponent, + data: { + title: 'Pages Register - ' + environment.titleProject, + } as SBRouteData, + }, + { + path: 'forgot-password', + canActivate: [], + component: authContainers.ForgotPasswordComponent, + data: { + title: 'Pages Forgot Password - ' + environment.titleProject, + } as SBRouteData, + }, +]; + +@NgModule({ + imports: [AuthModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class AuthRoutingModule {} diff --git a/backoffice/src/pages/auth/auth.module.ts b/backoffice/src/pages/auth/auth.module.ts new file mode 100644 index 0000000..852ce1b --- /dev/null +++ b/backoffice/src/pages/auth/auth.module.ts @@ -0,0 +1,37 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as authComponents from './components'; + +/* Containers */ +import * as authContainers from './containers'; + +/* Services */ +import * as authServices from './services'; +import { NgxScannerQrcodeModule } from 'ngx-scanner-qrcode'; +import { GeneralModule } from 'pages/general/general.module'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + NgxScannerQrcodeModule, + GeneralModule + ], + providers: [...authServices.services], + declarations: [...authContainers.containers, ...authComponents.components], + exports: [...authContainers.containers, ...authComponents.components], +}) +export class AuthModule {} diff --git a/backoffice/src/pages/auth/components/index.ts b/backoffice/src/pages/auth/components/index.ts new file mode 100644 index 0000000..957924b --- /dev/null +++ b/backoffice/src/pages/auth/components/index.ts @@ -0,0 +1 @@ +export const components = []; diff --git a/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.html b/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.html new file mode 100644 index 0000000..dc39e6d --- /dev/null +++ b/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.html @@ -0,0 +1,21 @@ +
+
+
+
+

Password Recovery

+
+
Enter your email address and we will send you a link to reset your password.
+
+
+ +
+
+ +
+
+
+
diff --git a/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.pug b/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.pug new file mode 100644 index 0000000..5fe911e --- /dev/null +++ b/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.pug @@ -0,0 +1,19 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-5 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Password Recovery + .card-body + .small.mb-3.text-muted Enter your email address and we will send you a link to reset your password. + form + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-group.d-flex.align-items-center.justify-content-between.mt-4.mb-0 + a.small(routerLink='/auth/login') Return to login + a.btn.btn-primary(routerLink='/auth/login') Reset Password + .card-footer.text-center + .small + a(routerLink='/auth/register') Need an account? Sign up! diff --git a/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.scss b/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.spec.ts b/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.spec.ts new file mode 100644 index 0000000..6c9acb5 --- /dev/null +++ b/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { ForgotPasswordComponent } from './forgot-password.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('ForgotPasswordComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: ForgotPasswordComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, ForgotPasswordComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-forgot-password')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.ts b/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.ts new file mode 100644 index 0000000..12e6f0b --- /dev/null +++ b/backoffice/src/pages/auth/containers/forgot-password/forgot-password.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-forgot-password', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './forgot-password.component.html', + styleUrls: ['forgot-password.component.scss'], +}) +export class ForgotPasswordComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/pages/auth/containers/index.ts b/backoffice/src/pages/auth/containers/index.ts new file mode 100644 index 0000000..548911e --- /dev/null +++ b/backoffice/src/pages/auth/containers/index.ts @@ -0,0 +1,11 @@ +import { ForgotPasswordComponent } from './forgot-password/forgot-password.component'; +import { LoginBookComponent } from './login-book/login-book.component'; +import { LoginComponent } from './login/login.component'; +import { RegisterComponent } from './register/register.component'; + +export const containers = [LoginComponent, RegisterComponent, ForgotPasswordComponent, LoginBookComponent]; + +export * from './login/login.component'; +export * from './register/register.component'; +export * from './forgot-password/forgot-password.component'; +export * from './login-book/login-book.component'; diff --git a/backoffice/src/pages/auth/containers/login-book/login-book.component.html b/backoffice/src/pages/auth/containers/login-book/login-book.component.html new file mode 100644 index 0000000..8240aa7 --- /dev/null +++ b/backoffice/src/pages/auth/containers/login-book/login-book.component.html @@ -0,0 +1,56 @@ + + +
+
+ +
+ {{translationsService.translate("text_read_qrcode")}} +
+ + +
+ +
+
+ + +
+ +
+
\ No newline at end of file diff --git a/backoffice/src/pages/auth/containers/login-book/login-book.component.pug b/backoffice/src/pages/auth/containers/login-book/login-book.component.pug new file mode 100644 index 0000000..96a7610 --- /dev/null +++ b/backoffice/src/pages/auth/containers/login-book/login-book.component.pug @@ -0,0 +1,25 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-5 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Login + .card-body + form + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', placeholder='Enter email address') + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .form-group + .custom-control.custom-checkbox + input#rememberPasswordCheck.custom-control-input(type='checkbox') + label.custom-control-label(for='rememberPasswordCheck') Remember password + .form-group.d-flex.align-items-center.justify-content-between.mt-4.mb-0 + a.small(routerLink='/auth/forgot-password') Forgot Password? + a.btn.btn-primary(routerLink='/dashboard') Login + .card-footer.text-center + .small + a(routerLink='/auth/register') Need an account? Sign up! \ No newline at end of file diff --git a/backoffice/src/pages/auth/containers/login-book/login-book.component.scss b/backoffice/src/pages/auth/containers/login-book/login-book.component.scss new file mode 100644 index 0000000..70fe2d3 --- /dev/null +++ b/backoffice/src/pages/auth/containers/login-book/login-book.component.scss @@ -0,0 +1,96 @@ +@import 'styles/variables.scss'; +@import 'styles/maker_book.scss'; + +.lw-container { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + background-color: $background-color-login; + font-family: 'Inter'; + + @media screen and (max-width: 768px) { + background-color: #ffffff; // Fundo branco completo + } +} + +.lw-form { + padding: 40px; + border-radius: 8px; + box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1); + background-color: #ffffff; + width: 90%; + max-width: 400px; + text-align: center; + + @media screen and (max-width: 768px) { + border-radius: 0; // Remover o fundo arredondado + box-shadow: none; // Remover a sombra + background-color: #ffffff; // Fundo branco completo + } +} + +.logo { + width: 100%; + max-width: 230px; + height: auto; + margin-bottom: 7em; +} + +.form-group { + margin-bottom: 20px; + text-align: left; // Alinhamento de texto à esquerda +} + +.mobile-text { + display: none; // Oculta o texto em telas maiores + font-family: 'Inter'; + font-weight: bold; +} + +.camera-button { + display: none; + width: 100%; + padding: 8px; + background-color: $Black2; + color: white; + border: none; + border-radius: 12px; + cursor: pointer; + font-size: 14px; + font-weight: bold; + margin-bottom: 5em; // Espaçamento abaixo do botão +} + +.camera-button i { + margin-right: 8px; // Espaçamento entre o ícone e o texto do botão +} + +input { + width: 100%; + padding: 8px; + border: 1px solid #E5E5E5; + border-radius: 12px; + background: #F8F8F8; + text-align: center; +} + +@media screen and (max-width: 768px) { + .logo { + margin-bottom: 40px; // Aumenta o espaço abaixo do logo + } + + .form-group { + text-align: center; // Alinha os elementos ao centro + } + + .mobile-text { + display: block; // Mostra o texto em telas menores + } + + .camera-button { + display: block; + margin-left: auto; // Centraliza o botão + margin-right: auto; // Centraliza o botão + } +} diff --git a/backoffice/src/pages/auth/containers/login-book/login-book.component.ts b/backoffice/src/pages/auth/containers/login-book/login-book.component.ts new file mode 100644 index 0000000..992058b --- /dev/null +++ b/backoffice/src/pages/auth/containers/login-book/login-book.component.ts @@ -0,0 +1,87 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { Router } from '@angular/router'; +import { NgxScannerQrcodeComponent } from 'ngx-scanner-qrcode'; +import { AuthRequestModel, AuthResponseModel } from 'pages/auth/models'; +import { AuthService } from 'pages/auth/services'; +import { TranslationsService } from 'pages/general/services'; + +@Component({ + selector: 'sb-login-book', + templateUrl: './login-book.component.html', + styleUrls: ['login-book.component.scss'], +}) +export class LoginBookComponent implements OnInit { + constructor( + private authService: AuthService, + private router: Router, + public translationsService: TranslationsService + ) {} + + authForm: AuthRequestModel = { + accesskey: "", + }; + + modalAberto: boolean = false; + translationsLoaded: boolean = false; + @ViewChild('action') actionScanner?: NgxScannerQrcodeComponent; + + ngOnInit() { + localStorage.removeItem("currentUser"); + } + + btnLoginClick() { + this.authService.loginBook(this.authForm).subscribe({ + next: (response: AuthResponseModel) => { + if (response.success) { + localStorage.setItem("currentUser", JSON.stringify(response)); + window.location.href = "student"; + } + else { + alert(this.translationsService.translate("login_fail")); + } + }, + error: (error) => { + console.error('Erro no login', error); + // Lógica de tratamento de erro + } + }); + } + + btnLerQRcodeClick() { + this.modalAberto = true; + setTimeout(() => { + if (this.actionScanner) { + this.actionScanner.start(); + + this.checkQrData(); + } + }, 200); + } + + checkQrData(): void { + setTimeout(() => { + if (this.actionScanner!.data.value.length > 0) { + + const qrData = this.actionScanner!.data.value[0]; + + this.authForm.accesskey = qrData.value; + + this.actionScanner!.stop(); + + this.modalAberto = false; + + this.btnLoginClick(); + } + else if (this.modalAberto) { + this.checkQrData(); + } + }, 500); + } + + fecharDialogo() { + this.modalAberto = false; + this.actionScanner!.stop(); + } + + +} diff --git a/backoffice/src/pages/auth/containers/login/login.component.html b/backoffice/src/pages/auth/containers/login/login.component.html new file mode 100644 index 0000000..e8c0924 --- /dev/null +++ b/backoffice/src/pages/auth/containers/login/login.component.html @@ -0,0 +1,38 @@ + +
+
+
+
+
+

Login

+
+
+
+ + +
+
+ + +
+
+
+ + +
+
+
+ Forgot Password? + +
+
+ +
+
+
+
diff --git a/backoffice/src/pages/auth/containers/login/login.component.pug b/backoffice/src/pages/auth/containers/login/login.component.pug new file mode 100644 index 0000000..96a7610 --- /dev/null +++ b/backoffice/src/pages/auth/containers/login/login.component.pug @@ -0,0 +1,25 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-5 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Login + .card-body + form + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', placeholder='Enter email address') + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .form-group + .custom-control.custom-checkbox + input#rememberPasswordCheck.custom-control-input(type='checkbox') + label.custom-control-label(for='rememberPasswordCheck') Remember password + .form-group.d-flex.align-items-center.justify-content-between.mt-4.mb-0 + a.small(routerLink='/auth/forgot-password') Forgot Password? + a.btn.btn-primary(routerLink='/dashboard') Login + .card-footer.text-center + .small + a(routerLink='/auth/register') Need an account? Sign up! \ No newline at end of file diff --git a/backoffice/src/pages/auth/containers/login/login.component.scss b/backoffice/src/pages/auth/containers/login/login.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/auth/containers/login/login.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/auth/containers/login/login.component.ts b/backoffice/src/pages/auth/containers/login/login.component.ts new file mode 100644 index 0000000..1194898 --- /dev/null +++ b/backoffice/src/pages/auth/containers/login/login.component.ts @@ -0,0 +1,44 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { AuthRequestModel, AuthResponseModel } from 'pages/auth/models'; +import { AuthService } from 'pages/auth/services'; + +@Component({ + selector: 'sb-login', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './login.component.html', + styleUrls: ['login.component.scss'], +}) +export class LoginComponent implements OnInit { + constructor( + private authService: AuthService, + private router: Router, + ) {} + + authForm: AuthRequestModel = { + email: "", + password: "" + }; + + ngOnInit() { + localStorage.removeItem("currentUser"); + } + + btnLoginClick() { + this.authService.login(this.authForm).subscribe({ + next: (response: AuthResponseModel) => { + if (response.success) { + localStorage.setItem("currentUser", JSON.stringify(response)); + window.location.href = "dashboard"; + } + else { + alert("Usuário e/ou senha incorretos"); + } + }, + error: (error) => { + console.error('Erro no login', error); + // Lógica de tratamento de erro + } + }); + } +} diff --git a/backoffice/src/pages/auth/containers/register/register.component.html b/backoffice/src/pages/auth/containers/register/register.component.html new file mode 100644 index 0000000..5cbe32e --- /dev/null +++ b/backoffice/src/pages/auth/containers/register/register.component.html @@ -0,0 +1,36 @@ +
+
+
+
+

Create Account

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
diff --git a/backoffice/src/pages/auth/containers/register/register.component.pug b/backoffice/src/pages/auth/containers/register/register.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/auth/containers/register/register.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/auth/containers/register/register.component.scss b/backoffice/src/pages/auth/containers/register/register.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/auth/containers/register/register.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/auth/containers/register/register.component.spec.ts b/backoffice/src/pages/auth/containers/register/register.component.spec.ts new file mode 100644 index 0000000..023094d --- /dev/null +++ b/backoffice/src/pages/auth/containers/register/register.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { RegisterComponent } from './register.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('RegisterComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: RegisterComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, RegisterComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-register')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/pages/auth/containers/register/register.component.ts b/backoffice/src/pages/auth/containers/register/register.component.ts new file mode 100644 index 0000000..7150294 --- /dev/null +++ b/backoffice/src/pages/auth/containers/register/register.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-register', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './register.component.html', + styleUrls: ['register.component.scss'], +}) +export class RegisterComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/pages/auth/models/auth.model.ts b/backoffice/src/pages/auth/models/auth.model.ts new file mode 100644 index 0000000..e094ac2 --- /dev/null +++ b/backoffice/src/pages/auth/models/auth.model.ts @@ -0,0 +1,13 @@ +export interface AuthRequestModel { + accesskey?: string; + email?: string; + password?: string +} + +export interface AuthResponseModel { + success: boolean; + role: number; + userId: number; + userName: string; + validated: boolean; +} \ No newline at end of file diff --git a/backoffice/src/pages/auth/models/index.ts b/backoffice/src/pages/auth/models/index.ts new file mode 100644 index 0000000..4d383a7 --- /dev/null +++ b/backoffice/src/pages/auth/models/index.ts @@ -0,0 +1 @@ +export * from './auth.model'; diff --git a/backoffice/src/pages/auth/services/auth.service.ts b/backoffice/src/pages/auth/services/auth.service.ts new file mode 100644 index 0000000..1e5bbf0 --- /dev/null +++ b/backoffice/src/pages/auth/services/auth.service.ts @@ -0,0 +1,42 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from 'environments/environment'; +import { AuthRequestModel, AuthResponseModel } from '../models'; +import { map } from 'rxjs/operators'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthService { + private apiUrl = environment.api_endpoint + '/auth'; + + constructor(private http: HttpClient) {} + + login(login: AuthRequestModel): Observable { + return this.http.post(this.apiUrl + '/login', [login]).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results[1] && response.results[1][0]) { + const data = response.results[1][0]; + return data as AuthResponseModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + loginBook(login: AuthRequestModel): Observable { + return this.http.post(this.apiUrl + '/loginBook', [login]).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results[1] && response.results[1][0]) { + const data = response.results[1][0]; + return data as AuthResponseModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + +} \ No newline at end of file diff --git a/backoffice/src/pages/auth/services/index.ts b/backoffice/src/pages/auth/services/index.ts new file mode 100644 index 0000000..7d3a163 --- /dev/null +++ b/backoffice/src/pages/auth/services/index.ts @@ -0,0 +1,5 @@ +import { AuthService } from './auth.service'; + +export const services = [AuthService]; + +export * from './auth.service'; diff --git a/backoffice/src/pages/books/books-routing.module.ts b/backoffice/src/pages/books/books-routing.module.ts new file mode 100644 index 0000000..b258938 --- /dev/null +++ b/backoffice/src/pages/books/books-routing.module.ts @@ -0,0 +1,49 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { BooksModule } from './books.module'; + +/* Containers */ +import * as usersContainers from './containers'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + pathMatch: 'full', + redirectTo: 'list', + }, + { + path: 'list', + canActivate: [], + component: usersContainers.ListBooksComponent, + data: { + title: 'Listagem de Livros', + } as SBRouteData, + }, + { + path: 'input', + canActivate: [], + component: usersContainers.InputBooksComponent, + data: { + title: 'Cadastro de Livros', + } as SBRouteData, + }, + { + path: 'input/:id', + canActivate: [], + component: usersContainers.InputBooksComponent, + data: { + title: 'Edição de Livros', + } as SBRouteData, + }, +]; + +@NgModule({ + imports: [BooksModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class BooksRoutingModule {} diff --git a/backoffice/src/pages/books/books.module.ts b/backoffice/src/pages/books/books.module.ts new file mode 100644 index 0000000..4aaf477 --- /dev/null +++ b/backoffice/src/pages/books/books.module.ts @@ -0,0 +1,35 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as booksComponents from './components'; + +/* Containers */ +import * as booksContainers from './containers'; + +/* Services */ +import * as booksServices from './services'; +import { GeneralModule } from 'pages/general/general.module'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + GeneralModule, + ], + providers: [...booksServices.services], + declarations: [...booksContainers.containers, ...booksComponents.components], + exports: [...booksContainers.containers, ...booksComponents.components], +}) +export class BooksModule {} diff --git a/backoffice/src/pages/books/components/index.ts b/backoffice/src/pages/books/components/index.ts new file mode 100644 index 0000000..957924b --- /dev/null +++ b/backoffice/src/pages/books/components/index.ts @@ -0,0 +1 @@ +export const components = []; diff --git a/backoffice/src/pages/books/containers/index.ts b/backoffice/src/pages/books/containers/index.ts new file mode 100644 index 0000000..83c2108 --- /dev/null +++ b/backoffice/src/pages/books/containers/index.ts @@ -0,0 +1,7 @@ +import { ListBooksComponent } from './list/list.component'; +import { InputBooksComponent } from './input/input.component'; + +export const containers = [ListBooksComponent, InputBooksComponent]; + +export * from './list/list.component'; +export * from './input/input.component'; \ No newline at end of file diff --git a/backoffice/src/pages/books/containers/input/input.component.html b/backoffice/src/pages/books/containers/input/input.component.html new file mode 100644 index 0000000..9415d99 --- /dev/null +++ b/backoffice/src/pages/books/containers/input/input.component.html @@ -0,0 +1,26 @@ + + + + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
\ No newline at end of file diff --git a/backoffice/src/pages/books/containers/input/input.component.pug b/backoffice/src/pages/books/containers/input/input.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/books/containers/input/input.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/books/containers/input/input.component.scss b/backoffice/src/pages/books/containers/input/input.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/books/containers/input/input.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/books/containers/input/input.component.ts b/backoffice/src/pages/books/containers/input/input.component.ts new file mode 100644 index 0000000..191ff93 --- /dev/null +++ b/backoffice/src/pages/books/containers/input/input.component.ts @@ -0,0 +1,95 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { GlobalFunctions, environment } from 'environments/environment'; +import { BookModel } from 'pages/books/models'; +import { BooksService } from 'pages/books/services'; +import { CourseListResponseModel, CourseModel } from 'pages/courses/models'; +import { CoursesService } from 'pages/courses/services'; +import { ResponsePostModel } from 'pages/general/models/general-models'; +import { UserListResponseModel, UserModel, UserTypeListResponseModel } from 'pages/users/models'; +import { UsersService } from 'pages/users/services'; + +@Component({ + selector: 'sb-input-books', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './input.component.html', + styleUrls: ['input.component.scss'], +}) +export class InputBooksComponent implements OnInit { + + courses: CourseListResponseModel[] = []; + + form: BookModel = { + id: null, + description: "", + amount: 0, + idcourse: 0, + createdBy: environment.currentUser.userId, + }; + + constructor( + private changeDetectorRef: ChangeDetectorRef, + private coursesService: CoursesService, + private booksService: BooksService, + private route: ActivatedRoute, + private router: Router + ) {} + + ngOnInit() { + const loteId = this.route.snapshot.paramMap.get('id'); + + this.coursesService.list().subscribe({ + next: (courses: CourseListResponseModel[]) => { + this.courses = courses; + this.changeDetectorRef.detectChanges(); + }, + complete: () => { + if (loteId) { + this.booksService.get(+loteId).subscribe({ + next: (book: BookModel) => { + this.form = book; + }, + error: (err) => { + console.error(err); + }, + complete: () => { + this.changeDetectorRef.detectChanges(); + } + }); + } + } + }); + } + + saveLote() : void { + if (!GlobalFunctions.validaForm(this.form, ["description", "idcourse", "amount"], [0, null, ""])) { + return; + } + + if (this.form.id != null) { + this.booksService.update(this.form).subscribe({ + next: (response: ResponsePostModel) => { + alert("Livro editado com sucesso!"); + this.router.navigate(['/books/list']); + }, + error: (err) => { + alert("Erro ao editar livro!"); + console.log(err); + }, + }); + } + else { + this.booksService.create(this.form).subscribe({ + next: (response: ResponsePostModel) => { + alert("Livro cadastrado com sucesso!"); + this.router.navigate(['/books/list']); + }, + error: (err) => { + alert("Erro ao cadastrar livro!"); + console.log(err); + }, + }); + } + } + +} diff --git a/backoffice/src/pages/books/containers/list/list.component.html b/backoffice/src/pages/books/containers/list/list.component.html new file mode 100644 index 0000000..1de301d --- /dev/null +++ b/backoffice/src/pages/books/containers/list/list.component.html @@ -0,0 +1,10 @@ + + + +
+ Consulte os livros cadastrados no sistema. +
+
+ + +
diff --git a/backoffice/src/pages/books/containers/list/list.component.pug b/backoffice/src/pages/books/containers/list/list.component.pug new file mode 100644 index 0000000..96a7610 --- /dev/null +++ b/backoffice/src/pages/books/containers/list/list.component.pug @@ -0,0 +1,25 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-5 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Login + .card-body + form + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', placeholder='Enter email address') + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .form-group + .custom-control.custom-checkbox + input#rememberPasswordCheck.custom-control-input(type='checkbox') + label.custom-control-label(for='rememberPasswordCheck') Remember password + .form-group.d-flex.align-items-center.justify-content-between.mt-4.mb-0 + a.small(routerLink='/auth/forgot-password') Forgot Password? + a.btn.btn-primary(routerLink='/dashboard') Login + .card-footer.text-center + .small + a(routerLink='/auth/register') Need an account? Sign up! \ No newline at end of file diff --git a/backoffice/src/pages/books/containers/list/list.component.scss b/backoffice/src/pages/books/containers/list/list.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/books/containers/list/list.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/books/containers/list/list.component.ts b/backoffice/src/pages/books/containers/list/list.component.ts new file mode 100644 index 0000000..1b87cbf --- /dev/null +++ b/backoffice/src/pages/books/containers/list/list.component.ts @@ -0,0 +1,85 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { BookItemListModel, BookListResponseModel } from 'pages/books/models'; +import { BooksService } from 'pages/books/services'; +import { TableDataModel } from 'pages/general/containers/dynamic-table/table-data.model'; +import { of } from 'rxjs'; + +@Component({ + selector: 'sb-list-books', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './list.component.html', + styleUrls: ['list.component.scss'], +}) +export class ListBooksComponent implements OnInit { + + _tableData: TableDataModel = { + pageSize: 10, + total: of(0), + editUrl: "/books/input/:id", + listFunction: this.booksService.list.bind(this.booksService), + deleteFunction: this.booksService.delete.bind(this.booksService), + headers: [ + { label: "ID", field: "id" }, + { label: "Descrição", field: "description" }, + { label: "Curso", field: "courseName" }, + { label: "Criado Por", field: "createdBy" }, + { label: "Criado Em", field: "createdAt" }, + { label: "Quantidade", field: "books" }, + ], + isExpansible: true, + expansibleData: { + pageSize: 10, + total: of(0), + listFunction: this.booksService.listSerials.bind(this.booksService), + idListFunction: 1, + headers: [ + { label: "ID", field: "id" }, + { label: "Chave de Acesso", field: "accesskey" }, + { label: "Validado", field: "validated" }, + { label: "Aluno", field: "owner" }, + { label: "Expirado", field: "expired" }, + { label: "Habilitado", field: "enabled" }, + ] + }, + subItemButtonText: "Imprimir QRCodes", + subItemButtonFunction: (item: BookListResponseModel) => { + // Gerar URLs de QR code + const qrUrls = this.generateQRCodes(this._tableData.expansibleData!.data); + + // Criar conteúdo HTML + const htmlContent = this.createHTMLContent(qrUrls); + + // Abrir nova guia + const newWindow = window.open('', '_blank'); + if (newWindow) { + newWindow.document.write(htmlContent); + newWindow.document.close(); // Finaliza a escrita do conteúdo + } else { + console.error('Falha ao abrir uma nova guia.'); + } + } + }; + + constructor( + private booksService: BooksService, + ) { } + + ngOnInit() { + } + + generateQRCodes(serials: BookItemListModel[]): string[] { + const qrSize = '200x200'; + return serials.map(serial => `https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(serial.accesskey)}&size=${qrSize}`); + } + + createHTMLContent(qrUrls: string[]): string { + let htmlContent = 'QR Codes'; + qrUrls.forEach(url => { + htmlContent += `QR Code`; + }); + htmlContent += ''; + return htmlContent; + } + + +} diff --git a/backoffice/src/pages/books/models/books.model.ts b/backoffice/src/pages/books/models/books.model.ts new file mode 100644 index 0000000..4864f36 --- /dev/null +++ b/backoffice/src/pages/books/models/books.model.ts @@ -0,0 +1,39 @@ +export interface BookModel { + id: number | null; + description: string; + idcourse: number; + createdBy: number; + amount: number; +} + +export interface BookListResponseModel { + id: number; + description: string; + createdBy: string; + createdAt: Date; + idcourse: number; + courseName: string; + books: number; +} + +export interface BookItemListModel { + id: number; + description: string; + idcourse: number; + courseName: string; + createdBy: number; + userName: string; + createdAt: Date; + idserialslote: number; + accesskey: string; + expiresAt: Date; + expired: boolean; + validated: boolean; + validatedAt: Date; + owner: string; +} + +export interface ValidateBookModel { + idserial: number; + userName: string; +} \ No newline at end of file diff --git a/backoffice/src/pages/books/models/index.ts b/backoffice/src/pages/books/models/index.ts new file mode 100644 index 0000000..fd0eab3 --- /dev/null +++ b/backoffice/src/pages/books/models/index.ts @@ -0,0 +1 @@ +export * from './books.model'; diff --git a/backoffice/src/pages/books/services/books.service.ts b/backoffice/src/pages/books/services/books.service.ts new file mode 100644 index 0000000..fb1ba4a --- /dev/null +++ b/backoffice/src/pages/books/services/books.service.ts @@ -0,0 +1,117 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from 'environments/environment'; +import { map } from 'rxjs/operators'; +import { ResponsePostModel } from 'pages/general/models/general-models'; +import { BookItemListModel, BookListResponseModel, BookModel, ValidateBookModel } from '../models'; + +@Injectable({ + providedIn: 'root' +}) +export class BooksService { + private apiUrl = environment.api_endpoint + '/books'; + + constructor(private http: HttpClient) {} + + list(): Observable { + return this.http.get(this.apiUrl + '/list').pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + return response.results as BookListResponseModel[]; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + listSerials(idserialslote: number): Observable { + return this.http.get(this.apiUrl + '/listSerials/' + idserialslote).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results.length > 0) { + return response.results[0] as BookItemListModel[]; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + get(id: number): Observable { + return this.http.get(this.apiUrl + '/get/' + id).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results.length > 0) { + return response.results[0][0] as BookModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + create(form: BookModel): Observable { + return this.http.post(this.apiUrl + '/create', [form]).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + update(form: BookModel): Observable { + return this.http.post(this.apiUrl + '/update', [form]).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + delete(iduser: number): Observable { + return this.http.delete(this.apiUrl + '/delete/' + iduser).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + validateBook(form: ValidateBookModel): Observable { + return this.http.post(this.apiUrl + '/validateBook', [form]).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + +} \ No newline at end of file diff --git a/backoffice/src/pages/books/services/index.ts b/backoffice/src/pages/books/services/index.ts new file mode 100644 index 0000000..3c1c160 --- /dev/null +++ b/backoffice/src/pages/books/services/index.ts @@ -0,0 +1,5 @@ +import { BooksService } from './books.service'; + +export const services = [BooksService]; + +export * from './books.service'; diff --git a/backoffice/src/pages/classes/classes-routing.module.ts b/backoffice/src/pages/classes/classes-routing.module.ts new file mode 100644 index 0000000..f165774 --- /dev/null +++ b/backoffice/src/pages/classes/classes-routing.module.ts @@ -0,0 +1,41 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { ClassesModule } from './classes.module'; + +/* Containers */ +import * as usersContainers from './containers'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + pathMatch: 'full', + redirectTo: 'list', + }, + { + path: 'input/:idcourse', + canActivate: [], + component: usersContainers.InputClassesComponent, + data: { + title: 'Cadastro de Aulas', + } as SBRouteData, + }, + { + path: 'input/:idcourse/:id', + canActivate: [], + component: usersContainers.InputClassesComponent, + data: { + title: 'Edição de Aulas', + } as SBRouteData, + }, +]; + +@NgModule({ + imports: [ClassesModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class ClassesRoutingModule {} diff --git a/backoffice/src/pages/classes/classes.module.ts b/backoffice/src/pages/classes/classes.module.ts new file mode 100644 index 0000000..88df552 --- /dev/null +++ b/backoffice/src/pages/classes/classes.module.ts @@ -0,0 +1,36 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as classesComponents from './components'; + +/* Containers */ +import * as classesContainers from './containers'; + +/* Services */ +import * as classesServices from './services'; +import { TablesModule } from '@modules/tables/tables.module'; +import { GeneralModule } from 'pages/general/general.module'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + GeneralModule + ], + providers: [...classesServices.services], + declarations: [...classesContainers.containers, ...classesComponents.components], + exports: [...classesContainers.containers, ...classesComponents.components], +}) +export class ClassesModule {} diff --git a/backoffice/src/pages/classes/components/index.ts b/backoffice/src/pages/classes/components/index.ts new file mode 100644 index 0000000..957924b --- /dev/null +++ b/backoffice/src/pages/classes/components/index.ts @@ -0,0 +1 @@ +export const components = []; diff --git a/backoffice/src/pages/classes/containers/index.ts b/backoffice/src/pages/classes/containers/index.ts new file mode 100644 index 0000000..26d8a78 --- /dev/null +++ b/backoffice/src/pages/classes/containers/index.ts @@ -0,0 +1,5 @@ +import { InputClassesComponent } from './input/input.component'; + +export const containers = [InputClassesComponent]; + +export * from './input/input.component'; \ No newline at end of file diff --git a/backoffice/src/pages/classes/containers/input/input.component.html b/backoffice/src/pages/classes/containers/input/input.component.html new file mode 100644 index 0000000..700a08c --- /dev/null +++ b/backoffice/src/pages/classes/containers/input/input.component.html @@ -0,0 +1,140 @@ + + + + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ +
+
+ ... +
+
+ + +
+
+
+ + +
+
+

Conteúdo da Aula

+
+
+ +
+
+ +
+
+
+
+ + \ No newline at end of file diff --git a/backoffice/src/pages/classes/containers/input/input.component.pug b/backoffice/src/pages/classes/containers/input/input.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/classes/containers/input/input.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/classes/containers/input/input.component.scss b/backoffice/src/pages/classes/containers/input/input.component.scss new file mode 100644 index 0000000..9d095aa --- /dev/null +++ b/backoffice/src/pages/classes/containers/input/input.component.scss @@ -0,0 +1,39 @@ +@import 'styles/variables.scss'; + +/* Modal Component CSS */ +.modal { + display: block; /* Mostrar o modal */ + position: fixed; /* Ficar na mesma posição */ + z-index: 1; /* Ficar no topo */ + left: 0; + top: 0; + width: 100%; /* Largura total */ + height: 100%; /* Altura total */ + overflow: auto; /* Habilitar scroll se necessário */ + background-color: rgb(0,0,0); /* Cor de fundo */ + background-color: rgba(0,0,0,0.4); /* Preto com opacidade */ + z-index: 1090; + } + + .modal-content { + background-color: #fefefe; + margin: 15% auto; /* 15% do topo e centralizado horizontalmente */ + padding: 20px; + border: 1px solid #888; + width: 90%; /* Largura do conteúdo */ + } + + /* Botão Fechar */ + .close { + color: #aaa; + float: right; + font-size: 28px; + font-weight: bold; + } + + .close:hover, + .close:focus { + color: black; + text-decoration: none; + cursor: pointer; + } \ No newline at end of file diff --git a/backoffice/src/pages/classes/containers/input/input.component.ts b/backoffice/src/pages/classes/containers/input/input.component.ts new file mode 100644 index 0000000..3867d1a --- /dev/null +++ b/backoffice/src/pages/classes/containers/input/input.component.ts @@ -0,0 +1,302 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { GlobalFunctions, environment } from 'environments/environment'; +import { ClassContentFormModel, ClassContentListResponseModel, ClassContentTypeModel, ClassListResponseModel, ClassModel } from 'pages/classes/models'; +import { ClassContentService, ClassesService } from 'pages/classes/services'; +import { CourseModel } from 'pages/courses/models'; +import { CoursesService } from 'pages/courses/services'; +import { TableDataModel } from 'pages/general/containers/dynamic-table/table-data.model'; +import { ResponsePostModel } from 'pages/general/models/general-models'; +import { SafeUrlService } from 'pages/general/services'; +import { of } from 'rxjs'; + +@Component({ + selector: 'sb-input-classes', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './input.component.html', + styleUrls: ['input.component.scss'], +}) +export class InputClassesComponent implements OnInit { + + contentTypes: ClassContentTypeModel[] = []; + + course: CourseModel = { + id: 0, + description: "", + duration: 0, + enabled: false + }; + + form: ClassModel = { + idcourse: 0, + description: "", + enabled: false, + }; + + contentForm: ClassContentFormModel = { + idclasscontenttype: 0, + description: "", + idclass: 0, + createdBy: 0, + }; + + _tableData: TableDataModel = { + pageSize: 10, + total: of(0), + listFunction: this.classcontentService.list.bind(this.classcontentService), + deleteFunction: this.classcontentService.delete.bind(this.classcontentService), + editFunction: this.btnEditarConteudoClick.bind(this), + headers: [ + { label: "Tipo", field: "contentType" }, + { label: "Descrição", field: "contentDescription" }, + { label: "Sequência", field: "sequenceContent" }, + { label: "Ativado", field: "enabledContent" }, + ] + }; + + modalAberto: boolean = false; + editando: boolean = false; + + slides: File[] | any = []; + pdfUrl: string = ""; + + constructor( + private changeDetectorRef: ChangeDetectorRef, + private classesService: ClassesService, + private coursesService: CoursesService, + private classcontentService: ClassContentService, + private route: ActivatedRoute, + private router: Router, + public safeUrlService: SafeUrlService + ) {} + + ngOnInit() { + const CourseId = this.route.snapshot.paramMap.get('idcourse'); + const Id = this.route.snapshot.paramMap.get('id'); + + if (CourseId) { + this.coursesService.get(+CourseId).subscribe({ + next: (course: CourseModel) => { + this.course = course; + this.form.idcourse = this.course.id!; + }, + complete: () => { + if (Id) { + this.classesService.get(+Id).subscribe({ + next: (item: ClassModel) => { + this.form = item; + this.contentForm.idclass = this.form.id!; + this.contentForm.createdBy = environment.currentUser.userId; + this.form.cover = "classes/" + Id + ".jpg"; + }, + error: (err) => { + console.error(err); + }, + complete: () => { + this.classcontentService.listContentTypes().subscribe({ + next: (types: ClassContentTypeModel[]) => { + this.contentTypes = types; + }, + complete: () => { + this._tableData.idListFunction = this.form.id!; + this.changeDetectorRef.detectChanges(); + } + }); + } + }); + } + else { + this.classesService.list(+CourseId).subscribe({ + next: (classes: ClassListResponseModel[]) => { + this.form.sequence = classes.length + 1; + }, + complete: () => { + this.changeDetectorRef.detectChanges(); + } + }); + } + } + }); + } + } + + btnSalvarClick() : void { + if (!GlobalFunctions.validaForm(this.form, ["description"], [null, ""])) { + return; + } + + if (this.form.id != null) { + this.classesService.update(this.form).subscribe({ + next: (response: ResponsePostModel) => { + alert("Aula editada com sucesso!"); + this.router.navigate(['/courses/list']); + }, + error: (err) => { + alert("Erro ao editar aula!"); + console.log(err); + }, + }); + } + else { + this.classesService.create(this.form).subscribe({ + next: (response: ResponsePostModel) => { + alert("Aula cadastrada com sucesso!"); + this.router.navigate(['/courses/list']); + }, + error: (err) => { + alert("Erro ao cadastrar aula!"); + console.log(err); + }, + }); + } + } + + btnAdicionarConteudoClick() { + this.contentForm.idclasscontenttype = 0; + this.onTipoConteudoChange(); + this.modalAberto = true; + } + + btnFecharModalClick() { + this.editando = false; + this.modalAberto = false + } + + onTipoConteudoChange() { + if (!this.editando) { + this.contentForm.description = ""; + this.contentForm.url = ""; + this.contentForm.amount = 0; + this.contentForm.images = []; + this.contentForm.sequence = null; + this.contentForm.enabled = false; + this.slides = []; + this.pdfUrl = ""; + } + } + + btnSalvarConteudoClick() { + if (!GlobalFunctions.validaForm(this.contentForm, ["description", "idclasscontenttype"], [null, "", 0])) { + return; + } + + if (this.editando) { + this.classcontentService.update(this.contentForm).subscribe({ + next: (response: ResponsePostModel) => { + alert("Conteúdo editado com sucesso!"); + }, + complete: () => { + this.modalAberto = false; + this._tableData.listFunction(this.form.id).subscribe({ + next: (classContent: any) => { + this._tableData.data = classContent; + }, + complete: () => { + this.editando = false; + this.changeDetectorRef.detectChanges(); + } + }); + } + }); + } + else { + this.classcontentService.create(this.contentForm).subscribe({ + next: (response: ResponsePostModel) => { + alert("Conteúdo cadastrado com sucesso!"); + }, + complete: () => { + this.modalAberto = false; + this._tableData.listFunction(this.form.id).subscribe({ + next: (classContent: any) => { + this._tableData.data = classContent; + }, + complete: () => { + this.editando = false; + this.changeDetectorRef.detectChanges(); + } + }); + } + }); + } + + } + + btnEditarConteudoClick(item: ClassContentListResponseModel) { + this.editando = true; + + this.contentForm = { + id: item.id, + createdBy: environment.currentUser.userId, + description: item.contentDescription, + idclass: item.idclass, + idclasscontenttype: item.idclasscontenttype, + enabled: item.enabledContent, + sequence: item.sequenceContent, + url: item.contentUrl, + amount: item.contentAmount, + images: [] + }; + if (item.idclasscontenttype == 2) { + this.pdfUrl = "pdfs/pdf_" + item.idcontent + ".pdf"; + } + else if (item.idclasscontenttype == 3) { + let amount: number = item.contentAmount ?? 0; + for (let i = 0; i < amount; i++) { + let url = "slides/" + item.idcontent! + "/" + i + ".jpg"; + this.slides.push(url); + } + } + this.modalAberto = true; + this.changeDetectorRef.detectChanges(); + } + + onFileChangeSlide(event: Event): void { + const input = event.target as HTMLInputElement; + if (input.files?.length ?? 0 > 0) { + this.contentForm.images = Array.from(input.files!); + + this.slides = []; + Array.from(this.contentForm.images).forEach((file: File) => { + const reader = new FileReader(); + reader.onload = (e: any) => { + this.slides.push(e.target.result); + }; + reader.readAsDataURL(file); + }); + setTimeout(() => { + this.changeDetectorRef.detectChanges(); + }, 1000); + + } + this.contentForm.amount = this.contentForm.images?.length; + } + + onFileChangePdf(event: Event): void { + const input = event.target as HTMLInputElement; + if (input.files?.length ?? 0 > 0) { + this.contentForm.pdf = input.files![0]; + + this.pdfUrl = URL.createObjectURL(this.contentForm.pdf); + } + } + + onFileChangeCover(event: Event): void { + const input = event.target as HTMLInputElement; + if (input.files?.length ?? 0 > 0) { + + let file: File = input.files![0]; + this.form.coverData = file; + const reader = new FileReader(); + reader.onload = (e: any) => { + this.form.cover = e.target.result; + }; + reader.readAsDataURL(file); + setTimeout(() => { + this.changeDetectorRef.detectChanges(); + }, 500); + + } + this.contentForm.amount = this.contentForm.images?.length; + } + +} diff --git a/backoffice/src/pages/classes/models/classcontent.model.ts b/backoffice/src/pages/classes/models/classcontent.model.ts new file mode 100644 index 0000000..fa432f9 --- /dev/null +++ b/backoffice/src/pages/classes/models/classcontent.model.ts @@ -0,0 +1,48 @@ +export interface ClassContentModel { + id: number; + idclass: number; + idclasscontenttype: number; + idcontent: number; + sequence: number; + enabled: boolean; + createdBy: number; +} + +export interface ClassContentTypeModel { + id: number; + description: string; + enabled: boolean; +} + +export interface ClassContentListResponseModel { + id: number; + idcourse: number; + courseName: string; + idclass: number; + className: string; + sequenceClass: number; + enabledClass: boolean; + idclasscontenttype: number; + contentType: string; + idcontent: number; + contentDescription: string; + sequenceContent: number; + enabledContent: boolean; + contentUrl?: string; + contentAmount?: number; +} + +export interface ClassContentFormModel { + id?: number | null; + idcontent?: number; + idclasscontenttype: number; + description: string; + url?: string; + amount?: number; + images?: File[]; + pdf?: File; + idclass: number; + createdBy: number; + sequence?: number | null; + enabled?: boolean; +} \ No newline at end of file diff --git a/backoffice/src/pages/classes/models/classes.model.ts b/backoffice/src/pages/classes/models/classes.model.ts new file mode 100644 index 0000000..531693e --- /dev/null +++ b/backoffice/src/pages/classes/models/classes.model.ts @@ -0,0 +1,22 @@ +export interface ClassModel { + id?: number; + idcourse: number; + description: string; + sequence?: number | null; + enabled: boolean; + + cover?: string; + coverData?: File; +} + +export interface ClassListResponseModel { + id: number; + idcourse: number; + courseName: string; + description: string; + sequence: number; + enabled: boolean; + amountContent: number; + contents?: string; + cover?: string; +} diff --git a/backoffice/src/pages/classes/models/index.ts b/backoffice/src/pages/classes/models/index.ts new file mode 100644 index 0000000..90b0da6 --- /dev/null +++ b/backoffice/src/pages/classes/models/index.ts @@ -0,0 +1,2 @@ +export * from './classes.model'; +export * from './classcontent.model'; diff --git a/backoffice/src/pages/classes/services/classcontent.service.ts b/backoffice/src/pages/classes/services/classcontent.service.ts new file mode 100644 index 0000000..6146d48 --- /dev/null +++ b/backoffice/src/pages/classes/services/classcontent.service.ts @@ -0,0 +1,147 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from 'environments/environment'; +import { map } from 'rxjs/operators'; +import { ResponsePostModel } from 'pages/general/models/general-models'; +import { ClassContentFormModel, ClassContentListResponseModel, ClassContentModel, ClassContentTypeModel, ClassModel } from '../models'; + +@Injectable({ + providedIn: 'root' +}) +export class ClassContentService { + private apiUrl = environment.api_endpoint + '/classcontent'; + + constructor(private http: HttpClient) {} + + list(idclass: number): Observable { + return this.http.get(this.apiUrl + '/list/' + idclass).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results.length > 0) { + return response.results[0] as ClassContentListResponseModel[]; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + listContentTypes(): Observable { + return this.http.get(this.apiUrl + '/listContentTypes').pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + return response.results as ClassContentTypeModel[]; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + get(id: number): Observable { + return this.http.get(this.apiUrl + '/get/' + id).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results.length > 0) { + return response.results[0] as ClassContentModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + create(form: ClassContentFormModel | any): Observable { + const formData: FormData = new FormData(); + + if (form.images && form.images.length) { + form.images.forEach((file: File, index: number) => { + formData.append(`images`, file, file.name); + }); + } + if (form.pdf) { + formData.append(`pdf`, form.pdf, form.pdf.name); + } + + Object.keys(form).forEach(key => { + if (key !== 'images' && key !== 'pdf') { + formData.append(key, form[key]); + } + }); + + return this.http.post(this.apiUrl + '/create', formData).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + update(form: ClassContentFormModel | any): Observable { + const formData: FormData = new FormData(); + + if (form.images && form.images.length) { + form.images.forEach((file: File, index: number) => { + formData.append(`images`, file, file.name); + }); + } + if (form.pdf) { + formData.append(`pdf`, form.pdf, form.pdf.name); + } + + Object.keys(form).forEach(key => { + if (key !== 'images' && key !== 'pdf') { + formData.append(key, form[key]); + } + }); + + return this.http.post(this.apiUrl + '/update', formData).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + delete(id: number): Observable { + return this.http.delete(this.apiUrl + '/delete/' + id).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + loadPdf(pdfName: string): string { + const token = this.generateToken(pdfName); + return `${this.apiUrl}/loadPDF/${pdfName}?token=${token}`; + } + + generateToken(pdfName: string): string { + const timestamp = Date.now(); + const data = `${pdfName}:${timestamp}:${environment.secretKey}`; + const hash = btoa(data); // Codifica em base64 + return `${hash}:${timestamp}`; + } + +} \ No newline at end of file diff --git a/backoffice/src/pages/classes/services/classes.service.ts b/backoffice/src/pages/classes/services/classes.service.ts new file mode 100644 index 0000000..7eb7c2c --- /dev/null +++ b/backoffice/src/pages/classes/services/classes.service.ts @@ -0,0 +1,113 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from 'environments/environment'; +import { map } from 'rxjs/operators'; +import { ResponsePostModel } from 'pages/general/models/general-models'; +import { ClassContentListResponseModel, ClassContentTypeModel, ClassListResponseModel, ClassModel } from '../models'; + +@Injectable({ + providedIn: 'root' +}) +export class ClassesService { + private apiUrl = environment.api_endpoint + '/classes'; + + constructor(private http: HttpClient) {} + + list(courseId: number): Observable { + return this.http.get(this.apiUrl + '/list/' + courseId).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results.length > 0) { + return response.results[0] as ClassListResponseModel[]; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + get(id: number): Observable { + return this.http.get(this.apiUrl + '/get/' + id).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results.length > 0) { + return response.results[0] as ClassModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + create(form: ClassModel | any): Observable { + const formData: FormData = new FormData(); + + if (form.coverData) { + formData.append(`cover`, form.coverData, form.coverData.name); + } + + Object.keys(form).forEach(key => { + if (key !== 'cover') { + formData.append(key, form[key]); + } + }); + + return this.http.post(this.apiUrl + '/create', formData).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + update(form: ClassModel | any): Observable { + const formData: FormData = new FormData(); + + if (form.coverData) { + formData.append(`cover`, form.coverData, form.coverData.name); + } + + Object.keys(form).forEach(key => { + if (key !== 'cover') { + formData.append(key, form[key]); + } + }); + + return this.http.post(this.apiUrl + '/update', formData).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + delete(id: number): Observable { + return this.http.delete(this.apiUrl + '/delete/' + id).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + +} \ No newline at end of file diff --git a/backoffice/src/pages/classes/services/index.ts b/backoffice/src/pages/classes/services/index.ts new file mode 100644 index 0000000..3f06260 --- /dev/null +++ b/backoffice/src/pages/classes/services/index.ts @@ -0,0 +1,7 @@ +import { ClassContentService } from './classcontent.service'; +import { ClassesService } from './classes.service'; + +export const services = [ClassesService, ClassContentService]; + +export * from './classes.service'; +export * from './classcontent.service'; diff --git a/backoffice/src/pages/courses/components/index.ts b/backoffice/src/pages/courses/components/index.ts new file mode 100644 index 0000000..957924b --- /dev/null +++ b/backoffice/src/pages/courses/components/index.ts @@ -0,0 +1 @@ +export const components = []; diff --git a/backoffice/src/pages/courses/containers/index.ts b/backoffice/src/pages/courses/containers/index.ts new file mode 100644 index 0000000..7e22e7f --- /dev/null +++ b/backoffice/src/pages/courses/containers/index.ts @@ -0,0 +1,7 @@ +import { ListCoursesComponent } from './list/list.component'; +import { InputCoursesComponent } from './input/input.component'; + +export const containers = [ListCoursesComponent, InputCoursesComponent]; + +export * from './list/list.component'; +export * from './input/input.component'; \ No newline at end of file diff --git a/backoffice/src/pages/courses/containers/input/input.component.html b/backoffice/src/pages/courses/containers/input/input.component.html new file mode 100644 index 0000000..8bc3054 --- /dev/null +++ b/backoffice/src/pages/courses/containers/input/input.component.html @@ -0,0 +1,33 @@ + + + + +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ +
+ +
+ +
+
+
+
\ No newline at end of file diff --git a/backoffice/src/pages/courses/containers/input/input.component.pug b/backoffice/src/pages/courses/containers/input/input.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/courses/containers/input/input.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/courses/containers/input/input.component.scss b/backoffice/src/pages/courses/containers/input/input.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/courses/containers/input/input.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/courses/containers/input/input.component.ts b/backoffice/src/pages/courses/containers/input/input.component.ts new file mode 100644 index 0000000..79da79e --- /dev/null +++ b/backoffice/src/pages/courses/containers/input/input.component.ts @@ -0,0 +1,101 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'; +import { DomSanitizer } from '@angular/platform-browser'; +import { ActivatedRoute, Router } from '@angular/router'; +import { GlobalFunctions } from 'environments/environment'; +import { CourseModel } from 'pages/courses/models'; +import { CoursesService } from 'pages/courses/services'; +import { ResponsePostModel } from 'pages/general/models/general-models'; +import { UserListResponseModel, UserModel, UserTypeListResponseModel } from 'pages/users/models'; +import { UsersService } from 'pages/users/services'; + +@Component({ + selector: 'sb-input-courses', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './input.component.html', + styleUrls: ['input.component.scss'], +}) +export class InputCoursesComponent implements OnInit { + + userTypes: UserTypeListResponseModel[] = []; + + form: CourseModel = { + id: null, + description: "", + duration: 0, + enabled: false, + }; + + pdfUrl: string = ""; + + constructor( + private changeDetectorRef: ChangeDetectorRef, + private coursesService: CoursesService, + private route: ActivatedRoute, + private router: Router, + private sanitizer: DomSanitizer + ) {} + + ngOnInit() { + const Id = this.route.snapshot.paramMap.get('id'); + + if (Id) { + this.coursesService.get(+Id).subscribe({ + next: (course: CourseModel) => { + this.form = course; + this.pdfUrl = "pdfs/course_" + Id + ".pdf"; + }, + error: (err) => { + console.error(err); + }, + complete: () => { + this.changeDetectorRef.detectChanges(); + } + }); + } + } + + saveCourse() : void { + if (!GlobalFunctions.validaForm(this.form, ["description"], [null, ""])) { + return; + } + + if (this.form.id != null) { + this.coursesService.update(this.form).subscribe({ + next: (response: ResponsePostModel) => { + alert("Curso editado com sucesso!"); + this.router.navigate(['/courses/list']); + }, + error: (err) => { + alert("Erro ao editar curso!"); + console.log(err); + }, + }); + } + else { + this.coursesService.create(this.form).subscribe({ + next: (response: ResponsePostModel) => { + alert("Curso cadastrado com sucesso!"); + this.router.navigate(['/courses/list']); + }, + error: (err) => { + alert("Erro ao cadastrar curso!"); + console.log(err); + }, + }); + } + } + + onFileChangePdf(event: Event): void { + const input = event.target as HTMLInputElement; + if (input.files?.length ?? 0 > 0) { + this.form.pdf = input.files![0]; + + this.pdfUrl = URL.createObjectURL(this.form.pdf); + } + } + + getSafeUrl(url: string) { + return this.sanitizer.bypassSecurityTrustResourceUrl(url); + } + +} diff --git a/backoffice/src/pages/courses/containers/list/list.component.html b/backoffice/src/pages/courses/containers/list/list.component.html new file mode 100644 index 0000000..df1c02a --- /dev/null +++ b/backoffice/src/pages/courses/containers/list/list.component.html @@ -0,0 +1,9 @@ + + + +
+ Consulte os cursos cadastrados no sistema. +
+
+ +
diff --git a/backoffice/src/pages/courses/containers/list/list.component.pug b/backoffice/src/pages/courses/containers/list/list.component.pug new file mode 100644 index 0000000..96a7610 --- /dev/null +++ b/backoffice/src/pages/courses/containers/list/list.component.pug @@ -0,0 +1,25 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-5 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Login + .card-body + form + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', placeholder='Enter email address') + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .form-group + .custom-control.custom-checkbox + input#rememberPasswordCheck.custom-control-input(type='checkbox') + label.custom-control-label(for='rememberPasswordCheck') Remember password + .form-group.d-flex.align-items-center.justify-content-between.mt-4.mb-0 + a.small(routerLink='/auth/forgot-password') Forgot Password? + a.btn.btn-primary(routerLink='/dashboard') Login + .card-footer.text-center + .small + a(routerLink='/auth/register') Need an account? Sign up! \ No newline at end of file diff --git a/backoffice/src/pages/courses/containers/list/list.component.scss b/backoffice/src/pages/courses/containers/list/list.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/courses/containers/list/list.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/courses/containers/list/list.component.ts b/backoffice/src/pages/courses/containers/list/list.component.ts new file mode 100644 index 0000000..3059864 --- /dev/null +++ b/backoffice/src/pages/courses/containers/list/list.component.ts @@ -0,0 +1,39 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { ClassesService } from 'pages/classes/services'; +import { CourseListResponseModel } from 'pages/courses/models'; +import { CoursesService } from 'pages/courses/services'; +import { TableDataModel } from 'pages/general/containers/dynamic-table/table-data.model'; +import { of } from 'rxjs'; + +@Component({ + selector: 'sb-list-courses', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './list.component.html', + styleUrls: ['list.component.scss'], +}) +export class ListCoursesComponent implements OnInit { + + _tableData: TableDataModel = { + pageSize: 10, + total: of(0), + editUrl: "/courses/input/:id", + listFunction: this.coursesService.list.bind(this.coursesService), + deleteFunction: this.coursesService.delete.bind(this.coursesService), + headers: [ + { label: "ID", field: "id" }, + { label: "Descrição", field: "description" }, + { label: "Duração", field: "duration" }, + { label: "Ativado", field: "enabled" }, + ], + }; + + constructor( + private coursesService: CoursesService, + private classesService: ClassesService + ) {} + + ngOnInit() { + } + + +} diff --git a/backoffice/src/pages/courses/courses-routing.module.ts b/backoffice/src/pages/courses/courses-routing.module.ts new file mode 100644 index 0000000..e976e70 --- /dev/null +++ b/backoffice/src/pages/courses/courses-routing.module.ts @@ -0,0 +1,49 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { CoursesModule } from './courses.module'; + +/* Containers */ +import * as usersContainers from './containers'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + pathMatch: 'full', + redirectTo: 'list', + }, + { + path: 'list', + canActivate: [], + component: usersContainers.ListCoursesComponent, + data: { + title: 'Listagem de Cursos', + } as SBRouteData, + }, + { + path: 'input', + canActivate: [], + component: usersContainers.InputCoursesComponent, + data: { + title: 'Cadastro de Cursos', + } as SBRouteData, + }, + { + path: 'input/:id', + canActivate: [], + component: usersContainers.InputCoursesComponent, + data: { + title: 'Edição de Cursos', + } as SBRouteData, + }, +]; + +@NgModule({ + imports: [CoursesModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class CoursesRoutingModule {} diff --git a/backoffice/src/pages/courses/courses.module.ts b/backoffice/src/pages/courses/courses.module.ts new file mode 100644 index 0000000..3722bd2 --- /dev/null +++ b/backoffice/src/pages/courses/courses.module.ts @@ -0,0 +1,36 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as usersComponents from './components'; + +/* Containers */ +import * as usersContainers from './containers'; + +/* Services */ +import * as usersServices from './services'; +import { TablesModule } from '@modules/tables/tables.module'; +import { GeneralModule } from 'pages/general/general.module'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + GeneralModule + ], + providers: [...usersServices.services], + declarations: [...usersContainers.containers, ...usersComponents.components], + exports: [...usersContainers.containers, ...usersComponents.components], +}) +export class CoursesModule {} diff --git a/backoffice/src/pages/courses/models/courses.model.ts b/backoffice/src/pages/courses/models/courses.model.ts new file mode 100644 index 0000000..da0f728 --- /dev/null +++ b/backoffice/src/pages/courses/models/courses.model.ts @@ -0,0 +1,14 @@ +export interface CourseModel { + id: number | null; + description: string; + enabled: boolean; + duration: number; + pdf?: File; +} + +export interface CourseListResponseModel { + id: number; + description: string; + enabled: boolean; + duration: boolean; +} diff --git a/backoffice/src/pages/courses/models/index.ts b/backoffice/src/pages/courses/models/index.ts new file mode 100644 index 0000000..37fd83a --- /dev/null +++ b/backoffice/src/pages/courses/models/index.ts @@ -0,0 +1 @@ +export * from './courses.model'; diff --git a/backoffice/src/pages/courses/services/courses.service.ts b/backoffice/src/pages/courses/services/courses.service.ts new file mode 100644 index 0000000..f10f5b4 --- /dev/null +++ b/backoffice/src/pages/courses/services/courses.service.ts @@ -0,0 +1,113 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from 'environments/environment'; +import { map } from 'rxjs/operators'; +import { ResponsePostModel } from 'pages/general/models/general-models'; +import { CourseListResponseModel, CourseModel } from '../models'; + +@Injectable({ + providedIn: 'root' +}) +export class CoursesService { + private apiUrl = environment.api_endpoint + '/courses'; + + constructor(private http: HttpClient) {} + + list(): Observable { + return this.http.get(this.apiUrl + '/list').pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + return response.results as CourseListResponseModel[]; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + get(id: number): Observable { + return this.http.get(this.apiUrl + '/get/' + id).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results.length > 0) { + return response.results[0] as CourseModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + create(form: CourseModel | any): Observable { + const formData: FormData = new FormData(); + + if (form.pdf) { + formData.append(`pdf`, form.pdf, form.pdf.name); + } + + Object.keys(form).forEach(key => { + if (key !== 'pdf') { + formData.append(key, form[key]); + } + }); + + return this.http.post(this.apiUrl + '/create', formData).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + update(form: CourseModel | any): Observable { + const formData: FormData = new FormData(); + + if (form.pdf) { + formData.append(`pdf`, form.pdf, form.pdf.name); + } + + Object.keys(form).forEach(key => { + if (key !== 'pdf') { + formData.append(key, form[key]); + } + }); + + return this.http.post(this.apiUrl + '/update', formData).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + delete(iduser: number): Observable { + return this.http.delete(this.apiUrl + '/delete/' + iduser).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + +} \ No newline at end of file diff --git a/backoffice/src/pages/courses/services/index.ts b/backoffice/src/pages/courses/services/index.ts new file mode 100644 index 0000000..7d70c31 --- /dev/null +++ b/backoffice/src/pages/courses/services/index.ts @@ -0,0 +1,5 @@ +import { CoursesService } from './courses.service'; + +export const services = [CoursesService]; + +export * from './courses.service'; diff --git a/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.html b/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.html new file mode 100644 index 0000000..ead1b22 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.html @@ -0,0 +1,14 @@ +
+
+
Primary Card
+
+
+
Warning Card
+
+
+
Success Card
+
+
+
Danger Card
+
+
diff --git a/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.pug b/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.pug new file mode 100644 index 0000000..ada9368 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.pug @@ -0,0 +1,28 @@ +.row + .col-xl-3.col-md-6 + sb-card-view-details( + link='/dashboard', + background='bg-primary' + ) + .card-body Primary Card + + .col-xl-3.col-md-6 + sb-card-view-details( + link='/dashboard', + background='bg-warning' + ) + .card-body Warning Card + + .col-xl-3.col-md-6 + sb-card-view-details( + link='/dashboard', + background='bg-success' + ) + .card-body Success Card + + .col-xl-3.col-md-6 + sb-card-view-details( + link='/dashboard', + background='bg-danger' + ) + .card-body Danger Card diff --git a/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.scss b/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.spec.ts b/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.spec.ts new file mode 100644 index 0000000..132ab2a --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { DashboardCardsComponent } from './dashboard-cards.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('DashboardCardsComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: DashboardCardsComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, DashboardCardsComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-dashboard-cards')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.ts b/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.ts new file mode 100644 index 0000000..80da2aa --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-cards/dashboard-cards.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-dashboard-cards', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './dashboard-cards.component.html', + styleUrls: ['dashboard-cards.component.scss'], +}) +export class DashboardCardsComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.html b/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.html new file mode 100644 index 0000000..eed5647 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.html @@ -0,0 +1,14 @@ +
+
+
Area Chart Example
+
+
+
+
Bar Chart Example
+
+
+
diff --git a/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.pug b/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.pug new file mode 100644 index 0000000..f951607 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.pug @@ -0,0 +1,17 @@ +.row + .col-xl-6 + sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "chart-area"]') + | Area Chart Example + .card-body + sb-charts-area + + + .col-xl-6 + sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "chart-bar"]') + | Bar Chart Example + .card-body + sb-charts-bar diff --git a/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.scss b/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.spec.ts b/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.spec.ts new file mode 100644 index 0000000..e6f69a1 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { DashboardChartsComponent } from './dashboard-charts.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('DashboardChartsComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: DashboardChartsComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, DashboardChartsComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-dashboard-charts')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.ts b/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.ts new file mode 100644 index 0000000..c337fe0 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-charts/dashboard-charts.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-dashboard-charts', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './dashboard-charts.component.html', + styleUrls: ['dashboard-charts.component.scss'], +}) +export class DashboardChartsComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.html b/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.html new file mode 100644 index 0000000..64961c9 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.html @@ -0,0 +1,4 @@ +
DataTable Example
+
diff --git a/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.pug b/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.pug new file mode 100644 index 0000000..c8a5d2b --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.pug @@ -0,0 +1,6 @@ +sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "table"]') + | DataTable Example + .card-body + sb-ng-bootstrap-table([pageSize]='4') \ No newline at end of file diff --git a/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.scss b/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.spec.ts b/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.spec.ts new file mode 100644 index 0000000..720c472 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.spec.ts @@ -0,0 +1,53 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { DashboardTablesComponent } from './dashboard-tables.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('DashboardTablesComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: DashboardTablesComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, DashboardTablesComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-dashboard-tables')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.ts b/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.ts new file mode 100644 index 0000000..a95b24e --- /dev/null +++ b/backoffice/src/pages/dashboard/components/dashboard-tables/dashboard-tables.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-dashboard-tables', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './dashboard-tables.component.html', + styleUrls: ['dashboard-tables.component.scss'], +}) +export class DashboardTablesComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/pages/dashboard/components/index.ts b/backoffice/src/pages/dashboard/components/index.ts new file mode 100644 index 0000000..5130d97 --- /dev/null +++ b/backoffice/src/pages/dashboard/components/index.ts @@ -0,0 +1,13 @@ +import { DashboardCardsComponent } from './dashboard-cards/dashboard-cards.component'; +import { DashboardChartsComponent } from './dashboard-charts/dashboard-charts.component'; +import { DashboardTablesComponent } from './dashboard-tables/dashboard-tables.component'; + +export const components = [ + DashboardCardsComponent, + DashboardChartsComponent, + DashboardTablesComponent, +]; + +export * from './dashboard-cards/dashboard-cards.component'; +export * from './dashboard-charts/dashboard-charts.component'; +export * from './dashboard-tables/dashboard-tables.component'; diff --git a/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.html b/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.html new file mode 100644 index 0000000..c983803 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.html @@ -0,0 +1 @@ + diff --git a/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.pug b/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.pug new file mode 100644 index 0000000..d1f1821 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.pug @@ -0,0 +1,5 @@ +sb-layout-dashboard + sb-dashboard-head(title='Dashboard', [hideBreadcrumbs]='false') + sb-dashboard-cards + sb-dashboard-charts + sb-dashboard-tables diff --git a/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.scss b/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.spec.ts b/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.spec.ts new file mode 100644 index 0000000..21f3617 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { DashboardComponent } from './dashboard.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('DashboardComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: DashboardComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, DashboardComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-dashboard')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.ts b/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.ts new file mode 100644 index 0000000..3c86705 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/dashboard/dashboard.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-dashboard', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './dashboard.component.html', + styleUrls: ['dashboard.component.scss'], +}) +export class DashboardComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/pages/dashboard/containers/index.ts b/backoffice/src/pages/dashboard/containers/index.ts new file mode 100644 index 0000000..5e076eb --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/index.ts @@ -0,0 +1,9 @@ +import { DashboardComponent } from './dashboard/dashboard.component'; +import { LightComponent } from './light/light.component'; +import { StaticComponent } from './static/static.component'; + +export const containers = [DashboardComponent, StaticComponent, LightComponent]; + +export * from './dashboard/dashboard.component'; +export * from './static/static.component'; +export * from './light/light.component'; diff --git a/backoffice/src/pages/dashboard/containers/light/light.component.html b/backoffice/src/pages/dashboard/containers/light/light.component.html new file mode 100644 index 0000000..a5733d5 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/light/light.component.html @@ -0,0 +1 @@ + diff --git a/backoffice/src/pages/dashboard/containers/light/light.component.pug b/backoffice/src/pages/dashboard/containers/light/light.component.pug new file mode 100644 index 0000000..295d36e --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/light/light.component.pug @@ -0,0 +1,5 @@ +sb-layout-dashboard([light]='true') + sb-dashboard-head(title='Dashboard Light', [hideBreadcrumbs]='false') + sb-dashboard-cards + sb-dashboard-charts + sb-dashboard-tables diff --git a/backoffice/src/pages/dashboard/containers/light/light.component.scss b/backoffice/src/pages/dashboard/containers/light/light.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/light/light.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/dashboard/containers/light/light.component.spec.ts b/backoffice/src/pages/dashboard/containers/light/light.component.spec.ts new file mode 100644 index 0000000..bb92733 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/light/light.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { LightComponent } from './light.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('LightComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: LightComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, LightComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-light')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/pages/dashboard/containers/light/light.component.ts b/backoffice/src/pages/dashboard/containers/light/light.component.ts new file mode 100644 index 0000000..086e5c6 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/light/light.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-light', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './light.component.html', + styleUrls: ['light.component.scss'], +}) +export class LightComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/pages/dashboard/containers/static/static.component.html b/backoffice/src/pages/dashboard/containers/static/static.component.html new file mode 100644 index 0000000..7b7b811 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/static/static.component.html @@ -0,0 +1,8 @@ +
Pie Chart Example
+
+
diff --git a/backoffice/src/pages/dashboard/containers/static/static.component.pug b/backoffice/src/pages/dashboard/containers/static/static.component.pug new file mode 100644 index 0000000..9e5cd88 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/static/static.component.pug @@ -0,0 +1,12 @@ +sb-layout-dashboard([static]='true') + sb-dashboard-head(title='Dashboard Static', [hideBreadcrumbs]='false') + sb-dashboard-cards + sb-dashboard-charts + sb-dashboard-tables + sb-card + .card-header + fa-icon.mr-1([icon]='["fas", "chart-pie"]') + | Pie Chart Example + .card-body + sb-charts-pie + .card-footer.small.text-muted Updated yesterday at 11:59 PM \ No newline at end of file diff --git a/backoffice/src/pages/dashboard/containers/static/static.component.scss b/backoffice/src/pages/dashboard/containers/static/static.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/static/static.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/dashboard/containers/static/static.component.spec.ts b/backoffice/src/pages/dashboard/containers/static/static.component.spec.ts new file mode 100644 index 0000000..aefdf44 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/static/static.component.spec.ts @@ -0,0 +1,50 @@ +import { Component, DebugElement, NO_ERRORS_SCHEMA } from '@angular/core'; +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NoopAnimationsModule } from '@angular/platform-browser/animations'; + +import { StaticComponent } from './static.component'; + +@Component({ + template: ` + + `, +}) +class TestHostComponent { + // someInput = 1; + // someFunction(event: Event) {} +} + +describe('StaticComponent', () => { + let fixture: ComponentFixture; + let hostComponent: TestHostComponent; + let hostComponentDE: DebugElement; + let hostComponentNE: Element; + + let component: StaticComponent; + let componentDE: DebugElement; + let componentNE: Element; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHostComponent, StaticComponent], + imports: [NoopAnimationsModule], + providers: [], + schemas: [NO_ERRORS_SCHEMA], + }).compileComponents(); + + fixture = TestBed.createComponent(TestHostComponent); + hostComponent = fixture.componentInstance; + hostComponentDE = fixture.debugElement; + hostComponentNE = hostComponentDE.nativeElement; + + componentDE = hostComponentDE.children[0]; + component = componentDE.componentInstance; + componentNE = componentDE.nativeElement; + + fixture.detectChanges(); + }); + + it('should display the component', () => { + expect(hostComponentNE.querySelector('sb-static')).toEqual(jasmine.anything()); + }); +}); diff --git a/backoffice/src/pages/dashboard/containers/static/static.component.ts b/backoffice/src/pages/dashboard/containers/static/static.component.ts new file mode 100644 index 0000000..3d9a171 --- /dev/null +++ b/backoffice/src/pages/dashboard/containers/static/static.component.ts @@ -0,0 +1,12 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'sb-static', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './static.component.html', + styleUrls: ['static.component.scss'], +}) +export class StaticComponent implements OnInit { + constructor() {} + ngOnInit() {} +} diff --git a/backoffice/src/pages/dashboard/dashboard-routing.module.ts b/backoffice/src/pages/dashboard/dashboard-routing.module.ts new file mode 100644 index 0000000..97e5a44 --- /dev/null +++ b/backoffice/src/pages/dashboard/dashboard-routing.module.ts @@ -0,0 +1,74 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { DashboardModule } from './dashboard.module'; + +/* Containers */ +import * as dashboardContainers from './containers'; + +/* Guards */ +import * as dashboardGuards from './guards'; +import { environment } from 'environments/environment'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + data: { + title: 'Dashboard - ' + environment.titleProject, + breadcrumbs: [ + { + text: 'Dashboard', + active: true, + }, + ], + } as SBRouteData, + canActivate: [], + component: dashboardContainers.DashboardComponent, + }, + { + path: 'static', + data: { + title: 'Dashboard Static - ' + environment.titleProject, + breadcrumbs: [ + { + text: 'Dashboard', + link: '/dashboard', + }, + { + text: 'Static', + active: true, + }, + ], + } as SBRouteData, + canActivate: [], + component: dashboardContainers.StaticComponent, + }, + { + path: 'light', + data: { + title: 'Dashboard Light - ' + environment.titleProject, + breadcrumbs: [ + { + text: 'Dashboard', + link: '/dashboard', + }, + { + text: 'Light', + active: true, + }, + ], + } as SBRouteData, + canActivate: [], + component: dashboardContainers.LightComponent, + }, +]; + +@NgModule({ + imports: [DashboardModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class DashboardRoutingModule {} diff --git a/backoffice/src/pages/dashboard/dashboard.module.ts b/backoffice/src/pages/dashboard/dashboard.module.ts new file mode 100644 index 0000000..05f0ce4 --- /dev/null +++ b/backoffice/src/pages/dashboard/dashboard.module.ts @@ -0,0 +1,40 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; +import { ChartsModule } from '@modules/charts/charts.module'; +import { TablesModule } from '@modules/tables/tables.module'; + +/* Components */ +import * as dashboardComponents from './components'; + +/* Containers */ +import * as dashboardContainers from './containers'; + +/* Guards */ +import * as dashboardGuards from './guards'; + +/* Services */ +import * as dashboardServices from './services'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + ChartsModule, + TablesModule, + ], + providers: [...dashboardServices.services, ...dashboardGuards.guards], + declarations: [...dashboardContainers.containers, ...dashboardComponents.components], + exports: [...dashboardContainers.containers, ...dashboardComponents.components], +}) +export class DashboardModule {} diff --git a/backoffice/src/pages/dashboard/guards/dashboard.guard.spec.ts b/backoffice/src/pages/dashboard/guards/dashboard.guard.spec.ts new file mode 100644 index 0000000..8b8522d --- /dev/null +++ b/backoffice/src/pages/dashboard/guards/dashboard.guard.spec.ts @@ -0,0 +1,23 @@ +import { TestBed } from '@angular/core/testing'; + +import { DashboardGuard } from './dashboard.guard'; + +describe('Dashboard Guards', () => { + let dashboardGuard: DashboardGuard; + + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [], + providers: [DashboardGuard], + }); + dashboardGuard = TestBed.inject(DashboardGuard); + }); + + describe('canActivate', () => { + it('should return an Observable', () => { + dashboardGuard.canActivate().subscribe(response => { + expect(response).toEqual(true); + }); + }); + }); +}); diff --git a/backoffice/src/pages/dashboard/guards/dashboard.guard.ts b/backoffice/src/pages/dashboard/guards/dashboard.guard.ts new file mode 100644 index 0000000..bb047d5 --- /dev/null +++ b/backoffice/src/pages/dashboard/guards/dashboard.guard.ts @@ -0,0 +1,10 @@ +import { Injectable } from '@angular/core'; +import { CanActivate } from '@angular/router'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class DashboardGuard implements CanActivate { + canActivate(): Observable { + return of(true); + } +} diff --git a/backoffice/src/pages/dashboard/guards/index.ts b/backoffice/src/pages/dashboard/guards/index.ts new file mode 100644 index 0000000..28f5ff7 --- /dev/null +++ b/backoffice/src/pages/dashboard/guards/index.ts @@ -0,0 +1,5 @@ +import { DashboardGuard } from './dashboard.guard'; + +export const guards = [DashboardGuard]; + +export * from './dashboard.guard'; diff --git a/backoffice/src/pages/dashboard/models/dashboard.model.ts b/backoffice/src/pages/dashboard/models/dashboard.model.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/backoffice/src/pages/dashboard/models/dashboard.model.ts @@ -0,0 +1 @@ +export {}; diff --git a/backoffice/src/pages/dashboard/models/index.ts b/backoffice/src/pages/dashboard/models/index.ts new file mode 100644 index 0000000..1866903 --- /dev/null +++ b/backoffice/src/pages/dashboard/models/index.ts @@ -0,0 +1 @@ +export * from './dashboard.model'; diff --git a/backoffice/src/pages/dashboard/services/dashboard.service.spec.ts b/backoffice/src/pages/dashboard/services/dashboard.service.spec.ts new file mode 100644 index 0000000..8cea557 --- /dev/null +++ b/backoffice/src/pages/dashboard/services/dashboard.service.spec.ts @@ -0,0 +1,22 @@ +import { TestBed } from '@angular/core/testing'; + +import { DashboardService } from './dashboard.service'; + +describe('DashboardService', () => { + let dashboardService: DashboardService; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [DashboardService], + }); + dashboardService = TestBed.inject(DashboardService); + }); + + describe('getDashboard$', () => { + it('should return Observable', () => { + dashboardService.getDashboard$().subscribe(response => { + expect(response).toEqual({}); + }); + }); + }); +}); diff --git a/backoffice/src/pages/dashboard/services/dashboard.service.ts b/backoffice/src/pages/dashboard/services/dashboard.service.ts new file mode 100644 index 0000000..8e4e35b --- /dev/null +++ b/backoffice/src/pages/dashboard/services/dashboard.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@angular/core'; +import { Observable, of } from 'rxjs'; + +@Injectable() +export class DashboardService { + constructor() {} + + getDashboard$(): Observable<{}> { + return of({}); + } +} diff --git a/backoffice/src/pages/dashboard/services/index.ts b/backoffice/src/pages/dashboard/services/index.ts new file mode 100644 index 0000000..4471020 --- /dev/null +++ b/backoffice/src/pages/dashboard/services/index.ts @@ -0,0 +1,5 @@ +import { DashboardService } from './dashboard.service'; + +export const services = [DashboardService]; + +export * from './dashboard.service'; diff --git a/backoffice/src/pages/doing-class/components/index.ts b/backoffice/src/pages/doing-class/components/index.ts new file mode 100644 index 0000000..957924b --- /dev/null +++ b/backoffice/src/pages/doing-class/components/index.ts @@ -0,0 +1 @@ +export const components = []; diff --git a/backoffice/src/pages/doing-class/containers/class-list/class-list.component.html b/backoffice/src/pages/doing-class/containers/class-list/class-list.component.html new file mode 100644 index 0000000..86f87c8 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/class-list/class-list.component.html @@ -0,0 +1,82 @@ + +
+ {{ translationsService.translate("no_classes") }} +
+
+ +
+ + + + +
+

{{userCourses[idxCourse].courseName}}

+
+
+
+
+
+
+ {{ classItem.title }} +
+
+
+ + + {{ translationsService.translate("lesson") + " " + (i + 1) }} + + +
+ + + + + + + + + + + + +
+
+
+ {{ classItem.description }} +
+
+
+
+
+
+
+ + +
+
+ +
+ +
+
+ + +
+
+ + + +
+
+
\ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/class-list/class-list.component.pug b/backoffice/src/pages/doing-class/containers/class-list/class-list.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/class-list/class-list.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/class-list/class-list.component.scss b/backoffice/src/pages/doing-class/containers/class-list/class-list.component.scss new file mode 100644 index 0000000..82401cc --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/class-list/class-list.component.scss @@ -0,0 +1,172 @@ +@import 'styles/variables.scss'; +@import 'styles/maker_book.scss'; + +/* Estilos padrões (Desktop) */ + +.header-container { + display: flex; + align-items: center; + justify-content: space-between; /* Espaçamento entre o botão e a seção centralizada */ + margin-bottom: 3em; /* Espaçamento inferior */ +} + +.course-info-container { + flex-grow: 1; /* Preenche o espaço restante */ + text-align: center; /* Centraliza o texto */ +} + +.course-title { + margin: 0; + font-size: xx-large; /* Tamanho da fonte da descrição */ + color: #000000; /* Cor cinza para a descrição */ + font-family: 'Inter'; + font-weight: bold; + text-indent: -120px; +} + +.course-list { + display: grid; + grid-template-columns: 1fr 1fr; /* Duas colunas de igual largura */ + gap: 20px 40px; /* Espaçamento entre as colunas */ + font-family: 'Inter'; +} + +.class-card { + display: flex; + align-items: center; + padding: 16px; + background-color: #ffffff; + border-radius: 12px; /* Bordas arredondadas */ + box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1); /* Sombreamento leve */ + cursor: pointer; +} + +.card-content { + display: grid; + grid-template-columns: auto 1fr; /* Colunas para imagem e textos */ + gap: 16px; +} + +.class-image-container { + display: flex; + align-items: center; + justify-content: center; +} + +.class-image { + width: 120px; /* Ajuste conforme necessário */ + height: 100px; + border-radius: 4px; /* Bordas arredondadas na imagem */ +} + +.class-info { + flex-grow: 1; + align-content: center; +} + +.class-title-group { + display: flex; + align-items: center; + color: #ffffff; /* Texto em branco */ + margin-bottom: 8px; /* Espaçamento abaixo do título */ + font-size: 12px; + font-weight: bold; +} + +.class-title { + padding: 4px 8px; + border-radius: 4px; + text-align: center; +} + +.class-description { + font-weight: bold; /* Texto em negrito */ + font-size: 14px; + text-align: left; +} + +.icons-container { + display: flex; + margin-left: 10px; /* Ajuste conforme necessário */ +} + +.icon { + width: 20px; /* Ajuste conforme necessário */ + height: 20px; /* Ajuste conforme necessário */ + margin-right: 10px; +} + +.btn-close-book { + cursor: pointer; + position: absolute; + top: 1em; + right: 1em; + color: red; + z-index: 2; +} + +/* Estilos para Mobile */ +@media (max-width: 768px) { + .header-container { + flex-direction: column; /* Empilhar os itens verticalmente */ + text-align: center; /* Centralizar o texto */ + } + + .course-info-container { + margin: 1em 0; /* Margem em cima e embaixo */ + } + + .course-title { + font-size: xx-large; /* Tamanho da fonte da descrição */ + text-indent: 0; /* Remover o texto indentado */ + } + + .course-list { + display: flex; + flex-direction: column; /* Empilhar as aulas verticalmente */ + gap: 20px; /* Espaçamento entre as aulas */ + } + + .class-card { + flex-direction: column; /* Empilhar o conteúdo verticalmente */ + text-align: center; /* Centralizar o texto */ + } + + .card-content { + flex-direction: column; /* Empilhar a imagem e textos verticalmente */ + } + + .class-image-container { + width: 30vw; /* Ajustar a largura da imagem */ + height: 25vw; + } + + .class-image { + width: 100%; /* Ajustar a largura da imagem */ + height: auto; /* Ajustar a altura da imagem automaticamente */ + } + + .class-info { + flex-grow: 1; + align-content: center; + width: 50vw; + } + + .class-title-group { + display: flex; + justify-content: left; /* Centralizar o conteúdo */ + flex-wrap: wrap; /* Permitir que os itens fiquem lado a lado e quebrem a linha se necessário */ + } + + .icons-container { + display: flex; + margin-left: 10px; /* Ajuste conforme necessário */ + } + + .icon { + margin-right: 10px; + } + + + +} diff --git a/backoffice/src/pages/doing-class/containers/class-list/class-list.component.ts b/backoffice/src/pages/doing-class/containers/class-list/class-list.component.ts new file mode 100644 index 0000000..01f3097 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/class-list/class-list.component.ts @@ -0,0 +1,110 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { environment } from 'environments/environment'; +import { ValidateBookModel } from 'pages/books/models'; +import { BooksService } from 'pages/books/services'; +import { ClassContentListResponseModel, ClassListResponseModel } from 'pages/classes/models'; +import { ClassesService } from 'pages/classes/services'; +import { getRandomColorByIndex } from 'pages/general/colors'; +import { TranslationsService } from 'pages/general/services'; +import { UserCoursesListResponseModel } from 'pages/users/models'; +import { UsersService } from 'pages/users/services'; + +@Component({ + selector: 'sb-class-list', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './class-list.component.html', + styleUrls: ['class-list.component.scss'], +}) +export class ClassListComponent implements OnInit { + + getRandomBackgroundColor = getRandomColorByIndex; + + modalBook: boolean = false; + pdfLivro: ClassContentListResponseModel | any = null; + + idxCourse: number = -1; + userCourses: UserCoursesListResponseModel[] = []; + modalValidate: boolean = false; + userNameText: string = ""; + + constructor( + private changeDetectorRef: ChangeDetectorRef, + private usersService: UsersService, + private classesService: ClassesService, + private router: Router, + public translationsService: TranslationsService, + private bookService: BooksService + ) {} + + ngOnInit() { + if (environment.currentUser.validated == 0) { + this.modalValidate = true; + return; + } + this.usersService.listCourses(environment.currentUser.userId).subscribe({ + next: (_userCourses: UserCoursesListResponseModel[]) => { + //console.log(_userCourses); + this.userCourses = _userCourses; + this.idxCourse = this.userCourses.length > 0 ? 0 : -1; + }, + complete: () => { + this.classesService.list(this.userCourses[this.idxCourse].idcourse).subscribe({ + next: (_classes: ClassListResponseModel[]) => { + //console.log(_classes); + this.userCourses[this.idxCourse].classes = _classes; + }, + complete: () => { + this.changeDetectorRef.detectChanges(); + } + }); + } + }); + } + + btnValidarClick() { + if (this.userNameText == "") { + alert(this.translationsService.translate("text_type_name")); + return; + } + const form: ValidateBookModel = { + userName: this.userNameText, + idserial: environment.currentUser.userId + }; + this.bookService.validateBook(form).subscribe({ + next(value) { + if (value.affectedRows > 0) { + environment.currentUser.validated = true; + localStorage.setItem("currentUser", JSON.stringify(environment.currentUser)); + } + window.location.reload(); + }, + }); + } + + onImageError(event: Event) { + // Atribui a imagem padrão ao src da imagem com erro + (event.target as HTMLImageElement).src = environment.defaultImageError; + } + + onClassClick(aula: ClassListResponseModel) { + console.log(aula); + this.router.navigate(['student/view/' + aula.id]); + } + + + openBookModal() { + this.pdfLivro = { + contentDescription: this.userCourses[this.idxCourse].courseName, + contentUrl: "pdfs/course_" + this.userCourses[this.idxCourse].idcourse + ".pdf", + } as ClassContentListResponseModel; + this.modalBook = true; + } + + closeBookModal() { + this.modalBook = false; + this.pdfLivro = null; + } + + +} diff --git a/backoffice/src/pages/doing-class/containers/class-view/class-view.component.html b/backoffice/src/pages/doing-class/containers/class-view/class-view.component.html new file mode 100644 index 0000000..2c9c664 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/class-view/class-view.component.html @@ -0,0 +1,43 @@ + +
+ +
+ + + + +
+ + {{translationsService.translate("lesson")}} {{ classContents[0]?.sequenceClass }} + +

{{ classContents[0]?.className }}

+
+
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+ +
diff --git a/backoffice/src/pages/doing-class/containers/class-view/class-view.component.pug b/backoffice/src/pages/doing-class/containers/class-view/class-view.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/class-view/class-view.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/class-view/class-view.component.scss b/backoffice/src/pages/doing-class/containers/class-view/class-view.component.scss new file mode 100644 index 0000000..33aba2a --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/class-view/class-view.component.scss @@ -0,0 +1,53 @@ +@import 'styles/variables.scss'; +@import 'styles/maker_book.scss'; + +/* Centraliza o cabeçalho */ +.header-container { + display: flex; + align-items: center; + justify-content: space-between; /* Espaçamento entre o botão e a seção centralizada */ + margin-bottom: 20px; /* Espaçamento inferior */ +} + +/* Centraliza a seção de informações da aula */ +.class-info-container { + flex-grow: 1; /* Preenche o espaço restante */ + text-align: center; /* Centraliza o texto */ +} + +.class-content { + margin-bottom: 2em; +} + +/* Estilos adicionais para os elementos */ +.class-title { + margin: 0; + padding: 4px 8px; + border-radius: 4px; + text-align: center; + font-size: 12px; + font-weight: bold; + font-family: 'Inter'; + color: #ffffff; +} + +.class-description { + margin: 0; + font-size: xx-large; /* Tamanho da fonte da descrição */ + color: #000000; /* Cor cinza para a descrição */ + font-family: 'Inter'; +} + + +@media (max-width: 768px) { + .btn-back-text { + display: none; + margin-right: 1em; + } + + .class-info-container { + text-align: left; /* Centraliza o texto */ + margin-left: 1em; + } + +} \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/class-view/class-view.component.ts b/backoffice/src/pages/doing-class/containers/class-view/class-view.component.ts new file mode 100644 index 0000000..32d87ec --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/class-view/class-view.component.ts @@ -0,0 +1,63 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'; +import { ClassContentListResponseModel } from 'pages/classes/models'; +import { ClassContentService } from 'pages/classes/services'; +import { ActivatedRoute, Router } from '@angular/router'; +import { TranslationsService } from 'pages/general/services'; +import { getRandomColor } from 'pages/general/colors'; + +@Component({ + selector: 'sb-class-list', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './class-view.component.html', + styleUrls: ['class-view.component.scss'], +}) +export class ClassViewComponent implements OnInit { + + getRandomBackgroundColor = getRandomColor; + + classContents: ClassContentListResponseModel[] = []; + + contentsLoaded: Set = new Set(); + + constructor( + private changeDetectorRef: ChangeDetectorRef, + private classContentService: ClassContentService, + private router: Router, + private route: ActivatedRoute, + public translationsService: TranslationsService + ) {} + + ngOnInit() { + const IdClass = this.route.snapshot.paramMap.get('id'); + this.classContentService.list(+IdClass!).subscribe({ + next: (contents: ClassContentListResponseModel[]) => { + //console.log(contents); + this.classContents = contents; + }, + complete: () => { + this.changeDetectorRef.detectChanges(); + } + }); + } + + + btnVoltarClick() { + this.router.navigate(['student/classes']); + } + + + loadContent(content: ClassContentListResponseModel) { + // Carregar o conteúdo apenas se ainda não estiver carregado + if (!this.isContentLoaded(content)) { + // Lógica para carregar o conteúdo aqui + this.contentsLoaded.add(content.id.toString()); // Marcar o jogo como carregado + } + } + + isContentLoaded(content: ClassContentListResponseModel): boolean { + return this.contentsLoaded.has(content.id.toString()); + } + + + +} diff --git a/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.html b/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.html new file mode 100644 index 0000000..731535d --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.html @@ -0,0 +1,29 @@ +
+
+ +
+ Inglês + Português + +
+ Sair + {{ translationsService.translate('btn_logout') }} +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
diff --git a/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.pug b/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.scss b/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.scss new file mode 100644 index 0000000..8130edd --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.scss @@ -0,0 +1,81 @@ +@import 'styles/variables.scss'; +@import 'styles/maker_book.scss'; + +/* Estilos para o componente base */ +.base-container { + display: flex; + flex-direction: column; + position: fixed; + width: 100%; /* Ocupa toda a largura da tela */ + height: 100vh; /* Altura da tela */ + background-color: $background-color-student; /* Cor de fundo */ + top: 0; /* Fixa no topo da tela */ + left: 0; /* Fixa no lado esquerdo da tela */ + z-index: 1; +} + + +.header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0px 100px 0px 100px; + background-color: #ffffff; /* Fundo branco para o cabeçalho */ + box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1); /* Sombreamento */ +} + +.logo { + width: 140px; /* Ajuste conforme necessário */ + height: auto; +} + +.language-switcher { + display: flex; + align-items: center; /* Alinha os itens verticalmente */ +} + +.language-switcher img { + width: 40px; /* Ajuste conforme necessário */ + height: 40px; + margin-left: 25px; + border-radius: 50%; /* Torna as imagens redondas */ + cursor: pointer; /* Muda o cursor ao clicar */ +} + +.btn-logout-container { + display: flex; + align-items: center; /* Alinha os itens verticalmente */ +} + +.base-content { + padding: 30px 100px 30px 100px; + z-index: 2; + overflow: auto; +} + + + +@media only screen and (max-width: 768px) { + /* Estilos para dispositivos com largura mínima de 768px (desktop) */ + .header { + padding: 0 20px 0 20px; + } + + .language-switcher img { + width: 30px; /* Ajuste conforme necessário */ + height: 30px; + margin-left: 20px; + border-radius: 50%; /* Torna as imagens redondas */ + cursor: pointer; /* Muda o cursor ao clicar */ + } + + .text-logout { + display: none; + } + + .base-content { + padding: 15px; + z-index: 2; + overflow: auto; + } +} diff --git a/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.ts b/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.ts new file mode 100644 index 0000000..06ec153 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/doing-class/doing-class.component.ts @@ -0,0 +1,45 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'; +import { TranslationsService } from 'pages/general/services'; + +@Component({ + selector: 'sb-doing-class', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './doing-class.component.html', + styleUrls: ['doing-class.component.scss'], +}) +export class DoingClassComponent implements OnInit { + + modalLogout: boolean = false; + + constructor( + public translationsService: TranslationsService, + private changeDetectorRef: ChangeDetectorRef, + ) {} + + ngOnInit() { + setTimeout(() => { + this.changeDetectorRef.detectChanges(); + }, 50); + } + + changeLanguage(idioma: string) { + this.translationsService.changeLanguage(idioma); + } + + openLogoutModal() { + this.modalLogout = true; + } + + closeLogoutModal() { + this.modalLogout = false; + } + + logoutAction() { + window.location.href = "auth2/loginBook"; + } + + + + + +} diff --git a/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.html b/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.html new file mode 100644 index 0000000..98269c7 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.html @@ -0,0 +1,10 @@ +
+ {{content.contentDescription}} +
+ +
\ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.pug b/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.scss b/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.scss new file mode 100644 index 0000000..7ef9a9c --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.scss @@ -0,0 +1,22 @@ +@import 'styles/variables.scss'; +@import 'styles/maker_book.scss'; + +.frame-game { + width: 70vw; + height: 60vh; + border-radius: 12px; +} + +@media (max-width: 768px) { + .lw-form { + box-shadow: none; + padding-left: 0; + padding-right: 0; + background: none; + } + + .frame-game { + width: 90vw; + height: 50vw; + } +} \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.ts b/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.ts new file mode 100644 index 0000000..621306e --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/game-viewer/game-viewer.component.ts @@ -0,0 +1,28 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { environment } from 'environments/environment'; +import { ClassContentListResponseModel } from 'pages/classes/models'; +import { SafeUrlService, TranslationsService } from 'pages/general/services'; + +@Component({ + selector: 'game-viewer', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './game-viewer.component.html', + styleUrls: ['game-viewer.component.scss'], +}) +export class GameViewerComponent implements OnInit { + + @Input() content!: ClassContentListResponseModel; + + constructor( + private changeDetectorRef: ChangeDetectorRef, + public translationsService: TranslationsService, + public safeUrlService: SafeUrlService + ) {} + + ngOnInit() { + console.log(this.content); + } + + +} diff --git a/backoffice/src/pages/doing-class/containers/index.ts b/backoffice/src/pages/doing-class/containers/index.ts new file mode 100644 index 0000000..a22492a --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/index.ts @@ -0,0 +1,17 @@ +import { DoingClassComponent } from './doing-class/doing-class.component'; +import { ClassListComponent } from './class-list/class-list.component'; +import { ClassViewComponent } from './class-view/class-view.component'; +import { VideoPlayerComponent } from './video-player/video-player.component'; +import { PDFViewerComponent } from './pdf-viewer/pdf-viewer.component'; +import { SlideViewerComponent } from './slide-viewer/slide-viewer.component'; +import { GameViewerComponent } from './game-viewer/game-viewer.component'; + +export const containers = [DoingClassComponent, ClassListComponent, ClassViewComponent, VideoPlayerComponent, PDFViewerComponent, SlideViewerComponent, GameViewerComponent]; + +export * from './doing-class/doing-class.component'; +export * from './class-list/class-list.component'; +export * from './class-view/class-view.component'; +export * from './video-player/video-player.component'; +export * from './pdf-viewer/pdf-viewer.component'; +export * from './slide-viewer/slide-viewer.component'; +export * from './game-viewer/game-viewer.component'; diff --git a/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.html b/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.html new file mode 100644 index 0000000..b6d64ce --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.html @@ -0,0 +1,8 @@ +
+
+ {{content.contentDescription}} +
+
+
+
+
\ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.pug b/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.scss b/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.scss new file mode 100644 index 0000000..a244fe0 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.scss @@ -0,0 +1,36 @@ +@import 'styles/variables.scss'; +@import 'styles/maker_book.scss'; + +.pdf-title { + font-family: 'Inter'; + font-size: large; + font-weight: bold; +} + +.pdf-viewer { + max-height: 90vh; + border-radius: 12px; + overflow-y: scroll; /* Adiciona scroll vertical */ + overflow-x: hidden; /* Esconde o scroll horizontal, se necessário */ +} + +#pdfViewer { + width: 100%; + height: 100%; + overflow: auto; + canvas { + display: block; + margin: 0 auto; + } +} + +@media (max-width: 768px) { + .lw-form { + padding-left: 0; + padding-right: 0; + } + + .pdf-viewer { + max-width: 100%; + } +} \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.ts b/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.ts new file mode 100644 index 0000000..c36f9f2 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/pdf-viewer/pdf-viewer.component.ts @@ -0,0 +1,82 @@ +import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core'; +import { ClassContentListResponseModel } from 'pages/classes/models'; +import { ClassContentService } from 'pages/classes/services'; +import { SafeUrlService, TranslationsService } from 'pages/general/services'; + +@Component({ + selector: 'pdf-viewer', + templateUrl: './pdf-viewer.component.html', + styleUrls: ['pdf-viewer.component.scss'], +}) +export class PDFViewerComponent implements OnInit, AfterViewInit { + + @Input() content!: ClassContentListResponseModel; + @ViewChild('pdfViewer') pdfViewer!: ElementRef; + @Input() pdfName!: string; + loading: boolean = true; + + pdfUrl: string = ""; + + constructor( + public translationsService: TranslationsService, + public safeUrlService: SafeUrlService, + private classContentService: ClassContentService + ) {} + + ngOnInit() { + this.pdfUrl = this.classContentService.loadPdf(this.pdfName); + this.renderPDF(this.pdfUrl); + //this.pdfUrl = `${environment.api_endpoint}/classcontent/loadPDF/${this.pdfName}`; + } + + ngAfterViewInit() { + //this.renderPDF(this.pdfUrl); + } + + renderPDF(url: string) { + const pdfjsLib = (window as any)['pdfjs-dist/build/pdf']; + pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.10.377/pdf.worker.min.js'; + + const loadingTask = pdfjsLib.getDocument(url); + loadingTask.promise.then((pdf: any) => { + console.log('PDF carregado'); + this.renderPageSequentially(pdf, 1); + }, (reason: any) => { + console.error(reason); + }); + } + + renderPageSequentially(pdf: any, pageNumber: number) { + if (pageNumber > pdf.numPages) { + return; + } + + pdf.getPage(pageNumber).then((page: any) => { + console.log(`Página ${pageNumber} carregada`); + + const container = this.pdfViewer.nativeElement; + const viewport = page.getViewport({ scale: 1 }); + const scale = container.clientWidth / viewport.width; + const scaledViewport = page.getViewport({ scale: scale }); + + const canvas: HTMLCanvasElement = document.createElement('canvas'); + const context = canvas.getContext('2d'); + canvas.height = scaledViewport.height; + canvas.width = scaledViewport.width; + + container.appendChild(canvas); + + const renderContext = { + canvasContext: context, + viewport: scaledViewport + }; + const renderTask = page.render(renderContext); + renderTask.promise.then(() => { + console.log(`Página ${pageNumber} renderizada`); + this.renderPageSequentially(pdf, pageNumber + 1); + }); + }); + } + + +} \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.html b/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.html new file mode 100644 index 0000000..61fe5d3 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.html @@ -0,0 +1 @@ +slide viewer \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.pug b/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.scss b/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.scss new file mode 100644 index 0000000..319c22d --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.scss @@ -0,0 +1,2 @@ +@import 'styles/variables.scss'; +@import 'styles/maker_book.scss'; diff --git a/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.ts b/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.ts new file mode 100644 index 0000000..853092c --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/slide-viewer/slide-viewer.component.ts @@ -0,0 +1,27 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { environment } from 'environments/environment'; +import { ClassContentListResponseModel } from 'pages/classes/models'; +import { TranslationsService } from 'pages/general/services'; + +@Component({ + selector: 'slide-viewer', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './slide-viewer.component.html', + styleUrls: ['slide-viewer.component.scss'], +}) +export class SlideViewerComponent implements OnInit { + + @Input() content!: ClassContentListResponseModel; + + constructor( + private changeDetectorRef: ChangeDetectorRef, + public translationsService: TranslationsService + ) {} + + ngOnInit() { + console.log(this.content); + } + + +} diff --git a/backoffice/src/pages/doing-class/containers/video-player/video-player.component.html b/backoffice/src/pages/doing-class/containers/video-player/video-player.component.html new file mode 100644 index 0000000..9d9f355 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/video-player/video-player.component.html @@ -0,0 +1,12 @@ +
+ {{content.contentDescription}} +
+ +
\ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/video-player/video-player.component.pug b/backoffice/src/pages/doing-class/containers/video-player/video-player.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/video-player/video-player.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/video-player/video-player.component.scss b/backoffice/src/pages/doing-class/containers/video-player/video-player.component.scss new file mode 100644 index 0000000..06aab39 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/video-player/video-player.component.scss @@ -0,0 +1,22 @@ +@import 'styles/variables.scss'; +@import 'styles/maker_book.scss'; + +.frame-video { + width: 70vw; + height: 60vh; + border-radius: 12px; +} + +@media (max-width: 768px) { + .lw-form { + box-shadow: none; + padding-left: 0; + padding-right: 0; + background: none; + } + + .frame-video { + width: 90vw; + height: 50vw; + } +} \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/containers/video-player/video-player.component.ts b/backoffice/src/pages/doing-class/containers/video-player/video-player.component.ts new file mode 100644 index 0000000..a2d7a55 --- /dev/null +++ b/backoffice/src/pages/doing-class/containers/video-player/video-player.component.ts @@ -0,0 +1,29 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { environment } from 'environments/environment'; +import { ClassContentListResponseModel } from 'pages/classes/models'; +import { SafeUrlService, TranslationsService } from 'pages/general/services'; + +@Component({ + selector: 'video-player', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './video-player.component.html', + styleUrls: ['video-player.component.scss'], +}) +export class VideoPlayerComponent implements OnInit { + + @Input() content!: ClassContentListResponseModel; + + constructor( + private changeDetectorRef: ChangeDetectorRef, + public translationsService: TranslationsService, + public safeUrlService: SafeUrlService + ) {} + + ngOnInit() { + console.log(this.content); + } + + + +} diff --git a/backoffice/src/pages/doing-class/doing-class-routing.module.ts b/backoffice/src/pages/doing-class/doing-class-routing.module.ts new file mode 100644 index 0000000..e87fcfc --- /dev/null +++ b/backoffice/src/pages/doing-class/doing-class-routing.module.ts @@ -0,0 +1,41 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { DoingClassModule } from './doing-class.module'; + +/* Containers */ +import * as doingclassContainers from './containers'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + pathMatch: 'full', + redirectTo: 'classes', + }, + { + path: 'classes', + canActivate: [], + component: doingclassContainers.ClassListComponent, + data: { + title: 'Aulas do Curso', + } as SBRouteData, + }, + { + path: 'view/:id', + canActivate: [], + component: doingclassContainers.ClassViewComponent, + data: { + title: 'Conteúdo da Aula', + } as SBRouteData, + }, +]; + +@NgModule({ + imports: [DoingClassModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class DoingClassRoutingModule {} diff --git a/backoffice/src/pages/doing-class/doing-class.module.ts b/backoffice/src/pages/doing-class/doing-class.module.ts new file mode 100644 index 0000000..09d2eba --- /dev/null +++ b/backoffice/src/pages/doing-class/doing-class.module.ts @@ -0,0 +1,36 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as doingClassComponents from './components'; + +/* Containers */ +import * as doingClassContainers from './containers'; + +/* Services */ +import * as doingClassServices from './services'; +import { TablesModule } from '@modules/tables/tables.module'; +import { GeneralModule } from 'pages/general/general.module'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + GeneralModule + ], + providers: [...doingClassServices.services], + declarations: [...doingClassContainers.containers, ...doingClassComponents.components], + exports: [...doingClassContainers.containers, ...doingClassComponents.components], +}) +export class DoingClassModule {} diff --git a/backoffice/src/pages/doing-class/models/doing-class.model.ts b/backoffice/src/pages/doing-class/models/doing-class.model.ts new file mode 100644 index 0000000..f0ca359 --- /dev/null +++ b/backoffice/src/pages/doing-class/models/doing-class.model.ts @@ -0,0 +1,7 @@ +export interface ClassOfBook { + id?: number; + idcourse: number; + description: string; + sequence?: number | null; + enabled: boolean; +} diff --git a/backoffice/src/pages/doing-class/models/index.ts b/backoffice/src/pages/doing-class/models/index.ts new file mode 100644 index 0000000..06d4ea8 --- /dev/null +++ b/backoffice/src/pages/doing-class/models/index.ts @@ -0,0 +1 @@ +export * from './doing-class.model'; diff --git a/backoffice/src/pages/doing-class/services/doing-class.service.ts b/backoffice/src/pages/doing-class/services/doing-class.service.ts new file mode 100644 index 0000000..1b53573 --- /dev/null +++ b/backoffice/src/pages/doing-class/services/doing-class.service.ts @@ -0,0 +1,33 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from 'environments/environment'; +import { map } from 'rxjs/operators'; +import { ResponsePostModel } from 'pages/general/models/general-models'; +import { } from '../models'; + +@Injectable({ + providedIn: 'root' +}) +export class DoingClassService { + private apiUrl = environment.api_endpoint + '/doingclass'; + + constructor(private http: HttpClient) {} + + delete(id: number): Observable { + return this.http.delete(this.apiUrl + '/delete/' + id).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + +} \ No newline at end of file diff --git a/backoffice/src/pages/doing-class/services/index.ts b/backoffice/src/pages/doing-class/services/index.ts new file mode 100644 index 0000000..1650251 --- /dev/null +++ b/backoffice/src/pages/doing-class/services/index.ts @@ -0,0 +1,5 @@ +import { DoingClassService } from './doing-class.service'; + +export const services = [DoingClassService]; + +export * from './doing-class.service'; diff --git a/backoffice/src/pages/general/colors.ts b/backoffice/src/pages/general/colors.ts new file mode 100644 index 0000000..ba84bad --- /dev/null +++ b/backoffice/src/pages/general/colors.ts @@ -0,0 +1,71 @@ +// Dicionário de cores com nomes como chaves +export const colorDictionary: Record = { + 'Red1': '#FF164D', + 'Red2': '#EE4F4F', + 'Orange1': '#F0BF00', + 'Orange2': '#F0B446', + 'Blue1': '#007EFF', + 'Blue2': '#467EB7', + 'Green1': '#007700', + 'Green2': '#52A65E', + 'Purple1': '#730491', + 'Purple2': '#733E91', +}; + +// Função para embaralhar os valores do dicionário de cores +function shuffleColorDictionary(dictionary: Record): void { + const keys = Object.keys(dictionary); + const values = Object.values(dictionary); + + // Embaralha os valores + for (let i = values.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [values[i], values[j]] = [values[j], values[i]]; + } + + // Reatribui os valores embaralhados ao dicionário + keys.forEach((key, index) => { + dictionary[key] = values[index]; + }); +} + +// Embaralha os valores do dicionário de cores +shuffleColorDictionary(colorDictionary); + +// Função para obter a cor pelo nome da cor +export const getColorByName = (name: string): string => { + return colorDictionary[name]; +}; + +export const getRandomColor = (): string => { + const index = Math.floor(Math.random() * Object.keys(colorDictionary).length); + // Obtenha um array de nomes de cores (chaves) a partir do dicionário de cores + const colorNames = Object.keys(colorDictionary); + + // Verifique se o índice está dentro do intervalo válido + if (index < 0 || index >= colorNames.length) { + throw new Error("Índice fora do intervalo válido para o dicionário de cores"); + } + + // Obtenha o nome da cor com base no índice fornecido + const colorName = colorNames[index]; + + // Retorne o valor de cor associado a esse nome no dicionário + return colorDictionary[colorName]; +}; + +export const getRandomColorByIndex = (index: number): string => { + // Obtenha um array de nomes de cores (chaves) a partir do dicionário de cores + const colorNames = Object.keys(colorDictionary); + + // Verifique se o índice está dentro do intervalo válido + if (index < 0 || index >= colorNames.length) { + throw new Error("Índice fora do intervalo válido para o dicionário de cores"); + } + + // Obtenha o nome da cor com base no índice fornecido + const colorName = colorNames[index]; + + // Retorne o valor de cor associado a esse nome no dicionário + return colorDictionary[colorName]; +}; \ No newline at end of file diff --git a/backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.html b/backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.html new file mode 100644 index 0000000..8ec0033 --- /dev/null +++ b/backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.html @@ -0,0 +1,123 @@ + +
+ + Resultados +
+
+
+
+ Buscar: + + Buscando... +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ > + # + {{header.label}} + + + Editar + + Excluir +
+ + + {{ i + 1 }} + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ + # + {{header.label}} + + Editar + + Excluir +
+ {{ j + 1 }} + + + + + + +
+
+
+ + +
+
+
+
+ diff --git a/backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.scss b/backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.ts b/backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.ts new file mode 100644 index 0000000..eba1572 --- /dev/null +++ b/backoffice/src/pages/general/containers/dynamic-table/dynamic-table.component.ts @@ -0,0 +1,119 @@ +import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; +import { SortEvent } from '@modules/tables/directives'; +import { ResponsePostModel } from 'pages/general/models/general-models'; +import { TableDataModel } from './table-data.model'; + +@Component({ + selector: 'sb-dynamic-table', + templateUrl: './dynamic-table.component.html', + styleUrls: ['./dynamic-table.component.scss'] +}) +export class DynamicTableComponent implements OnInit { + + @Input() _tableData!: TableDataModel; + + constructor( + private changeDetectorRef: ChangeDetectorRef, + private router: Router, + ) { } + + ngOnInit(): void { + this.atualizarDados(); + } + + atualizarDados() { + if (this._tableData.idListFunction) { + this._tableData.listFunction(this._tableData.idListFunction).subscribe({ + next: (response: any[]) => { + this._tableData.data = response; + this.changeDetectorRef.detectChanges(); + }, + }); + } + else { + this._tableData.listFunction().subscribe({ + next: (response: any[]) => { + this._tableData.data = response; + this.changeDetectorRef.detectChanges(); + }, + }); + } + } + + onSort({ column, direction }: SortEvent) { + this._tableData.sortedColumn = column; + this._tableData.sortedDirection = direction; + this._tableData.sortedColumn = column; + this._tableData.sortedDirection = direction; + this.changeDetectorRef.detectChanges(); + } + + btnEditarClick(item: any) { + if (this._tableData.editFunction != undefined) { + this._tableData.editFunction!(item); + } + if (this._tableData.editUrl != undefined) { + let parametros: string[] = []; + let url: string = ""; + + if (this._tableData.data?.includes(item)) { + parametros = this._tableData.editUrl!.split(':'); + url = this._tableData.editUrl!.replace(":", "").replace(":", "").replace(":", ""); + } else if (this._tableData.expansibleData?.data?.includes(item)) { + parametros = this._tableData.expansibleData?.editUrl!.split(':'); + url = this._tableData.expansibleData?.editUrl!.replace(":", "").replace(":", "").replace(":", ""); + } + + for (let i = 1; i < parametros.length; i++) { + const parametro: string = parametros[i].replace("/", "").replace("/", "").replace("/", ""); + url = url.replace(parametro, item[parametro]); + } + + this.router.navigate([url]); + } + + } + + btnExcluirClick(item: any) { + if (confirm("Tem certeza que deseja excluir esse registro?")) { + + let deleteFunction: Function; + + if (this._tableData.data?.includes(item)) { + deleteFunction = this._tableData.deleteFunction!; + } + else if (this._tableData.expansibleData?.data?.includes(item)) { + deleteFunction = this._tableData.expansibleData?.deleteFunction!; + } + + deleteFunction!(item.id).subscribe({ + next: (response: ResponsePostModel[]) => { + alert("Registro excluído com sucesso!"); + this.atualizarDados(); + }, + error: (error: any) => { + alert("Erro ao excluir registro!"); + } + }); + } + } + + btnAcaoSubItemClick(item: any) { + this._tableData.subItemButtonFunction!(item); + } + + onExpand(item: any) { + item.isExpanded = !item.isExpanded; + + if (item.isExpanded) { + this._tableData.expansibleData?.listFunction(item.id).subscribe({ + next: (response: any[]) => { + this._tableData.expansibleData!.data = response; + this.changeDetectorRef.detectChanges(); + } + }); + } + } + +} diff --git a/backoffice/src/pages/general/containers/dynamic-table/table-data.model.ts b/backoffice/src/pages/general/containers/dynamic-table/table-data.model.ts new file mode 100644 index 0000000..2c1738c --- /dev/null +++ b/backoffice/src/pages/general/containers/dynamic-table/table-data.model.ts @@ -0,0 +1,27 @@ +import { Observable } from "rxjs"; + +export interface TableDataModel { + pageSize: number; + data?: any[]; + total: Observable; + sortedColumn?: string; + sortedDirection?: string; + searchTerm?: string; + loading?: boolean; + page?: number; + headers: TableHeaderModel[]; + editUrl?: string; + editFunction?: Function; + idListFunction?: number; + listFunction: Function; + deleteFunction?: Function; + isExpansible?: boolean; + expansibleData?: TableDataModel; + subItemButtonText?: string; + subItemButtonFunction?: Function; +} + +export interface TableHeaderModel { + label: string; + field: string; +} \ No newline at end of file diff --git a/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.html b/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.html new file mode 100644 index 0000000..8027262 --- /dev/null +++ b/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.html @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.pug b/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.scss b/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.scss new file mode 100644 index 0000000..081fbb9 --- /dev/null +++ b/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.scss @@ -0,0 +1,30 @@ +@import 'styles/variables.scss'; +@import 'styles/maker_book.scss'; + +.modal-background { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.5); /* Fundo escuro */ + display: flex; + justify-content: center; + align-items: center; + z-index: 9999; /* Garante que o modal esteja acima de outros elementos */ +} + +.modal-form { + max-height: 80vh; + max-width: 80vw; +} + +@media (max-width: 768px) { + .lw-form { + box-shadow: none; + } + + .modal-form { + max-width: 100%; + } +} \ No newline at end of file diff --git a/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.ts b/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.ts new file mode 100644 index 0000000..2d86e49 --- /dev/null +++ b/backoffice/src/pages/general/containers/general-dialog/general-dialog.component.ts @@ -0,0 +1,30 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; + +@Component({ + selector: 'general-dialog', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './general-dialog.component.html', + styleUrls: ['general-dialog.component.scss'], +}) +export class GeneralDialogComponent implements OnInit { + + @Input() modalAberto!: boolean; + @Input() width?: string; + @Input() padding?: string; + @Output() closeModalDialog: EventEmitter = new EventEmitter(); + + constructor( + private changeDetectorRef: ChangeDetectorRef, + ) {} + + ngOnInit() { + + } + + closeDialog() { + this.closeModalDialog.emit(); + } + + + +} diff --git a/backoffice/src/pages/general/containers/index.ts b/backoffice/src/pages/general/containers/index.ts new file mode 100644 index 0000000..643d39e --- /dev/null +++ b/backoffice/src/pages/general/containers/index.ts @@ -0,0 +1,9 @@ +import { DynamicTableComponent } from './dynamic-table/dynamic-table.component'; +import { GeneralDialogComponent } from './general-dialog/general-dialog.component'; +import { LazyLoadDirective } from './lazy-load.directive'; + +export const containers = [GeneralDialogComponent, DynamicTableComponent, LazyLoadDirective]; + +export * from './general-dialog/general-dialog.component'; +export * from './dynamic-table/dynamic-table.component'; +export * from './lazy-load.directive'; diff --git a/backoffice/src/pages/general/containers/lazy-load.directive.ts b/backoffice/src/pages/general/containers/lazy-load.directive.ts new file mode 100644 index 0000000..6b1585a --- /dev/null +++ b/backoffice/src/pages/general/containers/lazy-load.directive.ts @@ -0,0 +1,29 @@ +import { Directive, ElementRef, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core'; + +@Directive({ + selector: '[lazyLoad]' +}) +export class LazyLoadDirective implements OnInit, OnDestroy { + @Output() lazyLoad: EventEmitter = new EventEmitter(); + + private observer!: IntersectionObserver; + + constructor(private element: ElementRef) { } + + ngOnInit() { + this.observer = new IntersectionObserver(entries => { + entries.forEach(entry => { + if (entry.isIntersecting) { + this.lazyLoad.emit(); + this.observer.unobserve(this.element.nativeElement); + } + }); + }); + + this.observer.observe(this.element.nativeElement); + } + + ngOnDestroy() { + this.observer.disconnect(); + } +} diff --git a/backoffice/src/pages/general/general.module.ts b/backoffice/src/pages/general/general.module.ts new file mode 100644 index 0000000..a38f23f --- /dev/null +++ b/backoffice/src/pages/general/general.module.ts @@ -0,0 +1,32 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { TablesModule } from '@modules/tables/tables.module'; +import { RouterModule } from '@angular/router'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +import * as generalServices from './services'; +import * as generalContainers from './containers'; + +@NgModule({ + declarations: [ + ...generalContainers.containers, + ], + imports: [ + CommonModule, + TablesModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + ], + exports: [ + ...generalContainers.containers, + ], + providers: [ + ...generalServices.services + ] +}) +export class GeneralModule { } \ No newline at end of file diff --git a/backoffice/src/pages/general/models/general-models.ts b/backoffice/src/pages/general/models/general-models.ts new file mode 100644 index 0000000..037ef5b --- /dev/null +++ b/backoffice/src/pages/general/models/general-models.ts @@ -0,0 +1,4 @@ +export interface ResponsePostModel { + affectedRows: number; + insertId: number; +} \ No newline at end of file diff --git a/backoffice/src/pages/general/models/index.ts b/backoffice/src/pages/general/models/index.ts new file mode 100644 index 0000000..dd16c6a --- /dev/null +++ b/backoffice/src/pages/general/models/index.ts @@ -0,0 +1 @@ +export * from './general-models'; diff --git a/backoffice/src/pages/general/services/index.ts b/backoffice/src/pages/general/services/index.ts new file mode 100644 index 0000000..e7db96d --- /dev/null +++ b/backoffice/src/pages/general/services/index.ts @@ -0,0 +1,7 @@ +import { SafeUrlService } from './safe_url.service'; +import { TranslationsService } from './translations.service'; + +export const services = [TranslationsService, SafeUrlService]; + +export * from './translations.service'; +export * from './safe_url.service'; diff --git a/backoffice/src/pages/general/services/safe_url.service.ts b/backoffice/src/pages/general/services/safe_url.service.ts new file mode 100644 index 0000000..86327c5 --- /dev/null +++ b/backoffice/src/pages/general/services/safe_url.service.ts @@ -0,0 +1,13 @@ +import { Injectable } from '@angular/core'; +import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; + +@Injectable({ + providedIn: 'root', +}) +export class SafeUrlService { + constructor(private sanitizer: DomSanitizer) {} + + getSafeUrl(url: string): SafeResourceUrl { + return this.sanitizer.bypassSecurityTrustResourceUrl(url); + } +} diff --git a/backoffice/src/pages/general/services/translations.service.ts b/backoffice/src/pages/general/services/translations.service.ts new file mode 100644 index 0000000..b567922 --- /dev/null +++ b/backoffice/src/pages/general/services/translations.service.ts @@ -0,0 +1,43 @@ +// translations.service.ts +import { EventEmitter, Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { BehaviorSubject, Observable } from 'rxjs'; +import { environment } from 'environments/environment'; + +@Injectable({ + providedIn: 'root' +}) +export class TranslationsService { + private currentLanguageSubject: BehaviorSubject; + public currentLanguage: Observable; + + public translationsLoaded = new EventEmitter(); + + constructor( + private http: HttpClient + ) { + this.currentLanguageSubject = new BehaviorSubject(localStorage.getItem('locale') || 'en'); + this.currentLanguage = this.currentLanguageSubject.asObservable(); + this.loadTranslations(); + } + + loadTranslations(): void { + const lang = this.currentLanguageSubject.getValue(); + this.http.get(`/assets/i18n/${lang}.json`).subscribe(data => { + environment.translations = data; + if (lang != localStorage.getItem("locale")) { + localStorage.setItem('locale', lang); + window.location.reload(); + } + }); + } + + translate(key: string): string { + return environment.translations[key] || key; + } + + changeLanguage(lang: string): void { + this.currentLanguageSubject.next(lang); + this.loadTranslations(); + } +} diff --git a/backoffice/src/pages/users/components/index.ts b/backoffice/src/pages/users/components/index.ts new file mode 100644 index 0000000..957924b --- /dev/null +++ b/backoffice/src/pages/users/components/index.ts @@ -0,0 +1 @@ +export const components = []; diff --git a/backoffice/src/pages/users/containers/index.ts b/backoffice/src/pages/users/containers/index.ts new file mode 100644 index 0000000..6662c50 --- /dev/null +++ b/backoffice/src/pages/users/containers/index.ts @@ -0,0 +1,7 @@ +import { ListUsersComponent } from './list/list.component'; +import { InputUsersComponent } from './input/input.component'; + +export const containers = [ListUsersComponent, InputUsersComponent]; + +export * from './list/list.component'; +export * from './input/input.component'; \ No newline at end of file diff --git a/backoffice/src/pages/users/containers/input/input.component.html b/backoffice/src/pages/users/containers/input/input.component.html new file mode 100644 index 0000000..5845ef9 --- /dev/null +++ b/backoffice/src/pages/users/containers/input/input.component.html @@ -0,0 +1,36 @@ + + + + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
\ No newline at end of file diff --git a/backoffice/src/pages/users/containers/input/input.component.pug b/backoffice/src/pages/users/containers/input/input.component.pug new file mode 100644 index 0000000..85e018e --- /dev/null +++ b/backoffice/src/pages/users/containers/input/input.component.pug @@ -0,0 +1,35 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-7 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Create Account + .card-body + form + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputFirstName') First Name + input#inputFirstName.form-control.py-4(type='text', placeholder='Enter first name') + .col-md-6 + .form-group + label.small.mb-1(for='inputLastName') Last Name + input#inputLastName.form-control.py-4(type='text', placeholder='Enter last name') + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', aria-describedby='emailHelp', placeholder='Enter email address') + .form-row + .col-md-6 + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .col-md-6 + .form-group + label.small.mb-1(for='inputConfirmPassword') Confirm Password + input#inputConfirmPassword.form-control.py-4(type='password', placeholder='Confirm password') + .form-group.mt-4.mb-0 + a.btn.btn-primary.btn-block(routerLink='/dashboard') Create Account + .card-footer.text-center + .small + a(routerLink='/auth/login') Have an account? Go to login \ No newline at end of file diff --git a/backoffice/src/pages/users/containers/input/input.component.scss b/backoffice/src/pages/users/containers/input/input.component.scss new file mode 100644 index 0000000..ff1a3b7 --- /dev/null +++ b/backoffice/src/pages/users/containers/input/input.component.scss @@ -0,0 +1,38 @@ +@import 'styles/variables.scss'; + +/* Modal Component CSS */ +.modal { + display: block; /* Mostrar o modal */ + position: fixed; /* Ficar na mesma posição */ + z-index: 1; /* Ficar no topo */ + left: 0; + top: 0; + width: 100%; /* Largura total */ + height: 100%; /* Altura total */ + overflow: auto; /* Habilitar scroll se necessário */ + background-color: rgb(0,0,0); /* Cor de fundo */ + background-color: rgba(0,0,0,0.4); /* Preto com opacidade */ + } + + .modal-content { + background-color: #fefefe; + margin: 15% auto; /* 15% do topo e centralizado horizontalmente */ + padding: 20px; + border: 1px solid #888; + width: 80%; /* Largura do conteúdo */ + } + + /* Botão Fechar */ + .close { + color: #aaa; + float: right; + font-size: 28px; + font-weight: bold; + } + + .close:hover, + .close:focus { + color: black; + text-decoration: none; + cursor: pointer; + } \ No newline at end of file diff --git a/backoffice/src/pages/users/containers/input/input.component.ts b/backoffice/src/pages/users/containers/input/input.component.ts new file mode 100644 index 0000000..1e52f33 --- /dev/null +++ b/backoffice/src/pages/users/containers/input/input.component.ts @@ -0,0 +1,87 @@ +import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { ResponsePostModel } from 'pages/general/models/general-models'; +import { UserModel, UserTypeListResponseModel } from 'pages/users/models'; +import { UsersService } from 'pages/users/services'; +import { GlobalFunctions } from 'environments/environment'; + +@Component({ + selector: 'sb-input-users', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './input.component.html', + styleUrls: ['input.component.scss'], +}) +export class InputUsersComponent implements OnInit { + + userTypes: UserTypeListResponseModel[] = []; + + form: UserModel = { + id: null, + idusertype: 0, + name: "", + email: "", + password: "", + enabled: false, + }; + + constructor( + private changeDetectorRef: ChangeDetectorRef, + private usersService: UsersService, + private route: ActivatedRoute, + private router: Router, + ) {} + + ngOnInit() { + const userId = this.route.snapshot.paramMap.get('id'); + + this.usersService.listTypes().subscribe({ + next: (userTypes: UserTypeListResponseModel[]) => { + this.userTypes = userTypes; + }, + complete: () => { + if (userId) { + this.usersService.get(+userId).subscribe({ + next: (user: UserModel) => { + this.form = user; + }, + complete: () => { + this.changeDetectorRef.detectChanges(); + } + }); + } + } + }); + } + + saveUser() : void { + if (!GlobalFunctions.validaForm(this.form, ["name", "email", "password"], [null, ""])) { + return; + } + + if (this.form.id != null) { + this.usersService.update(this.form).subscribe({ + next: (response: ResponsePostModel) => { + alert("Usuário editado com sucesso!"); + this.router.navigate(['/users/list']); + }, + error: (err) => { + alert("Erro ao editar usuário!"); + console.log(err); + }, + }); + } + else { + this.usersService.create(this.form).subscribe({ + next: (response: ResponsePostModel) => { + alert("Usuário cadastrado com sucesso!"); + this.router.navigate(['/users/list']); + }, + error: (err) => { + alert("Erro ao cadastrar usuário!"); + console.log(err); + }, + }); + } + } + +} diff --git a/backoffice/src/pages/users/containers/list/list.component.html b/backoffice/src/pages/users/containers/list/list.component.html new file mode 100644 index 0000000..f8d9daa --- /dev/null +++ b/backoffice/src/pages/users/containers/list/list.component.html @@ -0,0 +1,9 @@ + + + +
+ Consulte os usuários cadastrados no sistema. +
+
+ +
diff --git a/backoffice/src/pages/users/containers/list/list.component.pug b/backoffice/src/pages/users/containers/list/list.component.pug new file mode 100644 index 0000000..96a7610 --- /dev/null +++ b/backoffice/src/pages/users/containers/list/list.component.pug @@ -0,0 +1,25 @@ +sb-layout-auth + .container + .row.justify-content-center + .col-lg-5 + .card.shadow-lg.border-0.rounded-lg.mt-5 + .card-header + h3.text-center.font-weight-light.my-4 Login + .card-body + form + .form-group + label.small.mb-1(for='inputEmailAddress') Email + input#inputEmailAddress.form-control.py-4(type='email', placeholder='Enter email address') + .form-group + label.small.mb-1(for='inputPassword') Password + input#inputPassword.form-control.py-4(type='password', placeholder='Enter password') + .form-group + .custom-control.custom-checkbox + input#rememberPasswordCheck.custom-control-input(type='checkbox') + label.custom-control-label(for='rememberPasswordCheck') Remember password + .form-group.d-flex.align-items-center.justify-content-between.mt-4.mb-0 + a.small(routerLink='/auth/forgot-password') Forgot Password? + a.btn.btn-primary(routerLink='/dashboard') Login + .card-footer.text-center + .small + a(routerLink='/auth/register') Need an account? Sign up! \ No newline at end of file diff --git a/backoffice/src/pages/users/containers/list/list.component.scss b/backoffice/src/pages/users/containers/list/list.component.scss new file mode 100644 index 0000000..8e95f88 --- /dev/null +++ b/backoffice/src/pages/users/containers/list/list.component.scss @@ -0,0 +1 @@ +@import 'styles/variables.scss'; diff --git a/backoffice/src/pages/users/containers/list/list.component.ts b/backoffice/src/pages/users/containers/list/list.component.ts new file mode 100644 index 0000000..500e688 --- /dev/null +++ b/backoffice/src/pages/users/containers/list/list.component.ts @@ -0,0 +1,37 @@ +import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; +import { TableDataModel } from 'pages/general/containers/dynamic-table/table-data.model'; +import { UsersService } from 'pages/users/services'; +import { of } from 'rxjs'; + +@Component({ + selector: 'sb-list-users', + changeDetection: ChangeDetectionStrategy.OnPush, + templateUrl: './list.component.html', + styleUrls: ['list.component.scss'], +}) +export class ListUsersComponent implements OnInit { + + _tableData: TableDataModel = { + pageSize: 10, + total: of(0), + editUrl: "/users/input/:id", + listFunction: this.usersService.list.bind(this.usersService), + deleteFunction: this.usersService.delete.bind(this.usersService), + headers: [ + { label: "ID", field: "id" }, + { label: "Tipo", field: "role" }, + { label: "Nome", field: "name" }, + { label: "E-mail", field: "email" }, + { label: "Ativado", field: "enabled" }, + ] + }; + + constructor( + private usersService: UsersService, + ) {} + + ngOnInit() { + } + + +} diff --git a/backoffice/src/pages/users/models/index.ts b/backoffice/src/pages/users/models/index.ts new file mode 100644 index 0000000..f9e1d92 --- /dev/null +++ b/backoffice/src/pages/users/models/index.ts @@ -0,0 +1,2 @@ +export * from './user.model'; +export * from './usercourses.model'; diff --git a/backoffice/src/pages/users/models/user.model.ts b/backoffice/src/pages/users/models/user.model.ts new file mode 100644 index 0000000..3d9c142 --- /dev/null +++ b/backoffice/src/pages/users/models/user.model.ts @@ -0,0 +1,22 @@ +export interface UserModel { + id: number | null; + idusertype: number; + name: string; + email: string; + password: string; + enabled: boolean; +} + +export interface UserListResponseModel { + id: number; + idusertype: string; + role: string; + name: string; + email: string; + enabled: boolean; +} + +export interface UserTypeListResponseModel { + id: number; + description: string; +} diff --git a/backoffice/src/pages/users/models/usercourses.model.ts b/backoffice/src/pages/users/models/usercourses.model.ts new file mode 100644 index 0000000..79adc82 --- /dev/null +++ b/backoffice/src/pages/users/models/usercourses.model.ts @@ -0,0 +1,34 @@ +import { ClassListResponseModel } from "pages/classes/models"; + +export interface UserCoursesModel { + id?: number | null; + iduser: number; + idcourse: number; + expired: boolean; +} + +export interface UserTypeModel { + id: number; + description: string; +} + +export interface UserCoursesListResponseModel { + iduser: number; + idcourse: number; + courseName: string; + expired: boolean; + daysRemaining: number; + amountClasses: number; + classesCompleted: number; + progress: number; + addedAt: Date; + + classes?: ClassListResponseModel[]; +} + +export interface UserCoursesFormModel { + id?: number | null; + iduser: number; + idcourse: number; + expired?: boolean; +} \ No newline at end of file diff --git a/backoffice/src/pages/users/services/index.ts b/backoffice/src/pages/users/services/index.ts new file mode 100644 index 0000000..ddeeaa1 --- /dev/null +++ b/backoffice/src/pages/users/services/index.ts @@ -0,0 +1,5 @@ +import { UsersService } from './user.service'; + +export const services = [UsersService]; + +export * from './user.service'; diff --git a/backoffice/src/pages/users/services/user.service.ts b/backoffice/src/pages/users/services/user.service.ts new file mode 100644 index 0000000..b0b761f --- /dev/null +++ b/backoffice/src/pages/users/services/user.service.ts @@ -0,0 +1,113 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { environment } from 'environments/environment'; +import { map } from 'rxjs/operators'; +import { UserCoursesListResponseModel, UserListResponseModel, UserModel, UserTypeListResponseModel } from '../models'; +import { ResponsePostModel } from 'pages/general/models/general-models'; + +@Injectable({ + providedIn: 'root' +}) +export class UsersService { + private apiUrl = environment.api_endpoint + '/users'; + + constructor(private http: HttpClient) {} + + listTypes(): Observable { + return this.http.get(this.apiUrl + '/listTypes').pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + return response.results as UserTypeListResponseModel[]; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + list(): Observable { + return this.http.get(this.apiUrl + '/list').pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + return response.results as UserListResponseModel[]; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + listCourses(id: number): Observable { + return this.http.get(this.apiUrl + '/listCourses/' + id).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results.length > 0) { + return response.results[0] as UserCoursesListResponseModel[]; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + get(id: number): Observable { + return this.http.get(this.apiUrl + '/get/' + id).pipe( + map((response: any) => { + if (response.status === 200 && response.results && response.results.length > 0) { + return response.results[0] as UserModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + create(form: UserModel): Observable { + return this.http.post(this.apiUrl + '/create', [form]).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + update(form: UserModel): Observable { + return this.http.post(this.apiUrl + '/update', [form]).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + + delete(iduser: number): Observable { + return this.http.delete(this.apiUrl + '/delete/' + iduser).pipe( + map((response: any) => { + if (response.status === 200 && response.results) { + const data = response.results; + return { + insertId: data.insertId, + affectedRows: data.affectedRows + } as ResponsePostModel; + } else { + throw new Error('Resposta inesperada do servidor'); + } + }) + ); + } + +} \ No newline at end of file diff --git a/backoffice/src/pages/users/users-routing.module.ts b/backoffice/src/pages/users/users-routing.module.ts new file mode 100644 index 0000000..aa86723 --- /dev/null +++ b/backoffice/src/pages/users/users-routing.module.ts @@ -0,0 +1,49 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { SBRouteData } from '@modules/navigation/models'; + +/* Module */ +import { UsersModule } from './users.module'; + +/* Containers */ +import * as usersContainers from './containers'; + +/* Routes */ +export const ROUTES: Routes = [ + { + path: '', + pathMatch: 'full', + redirectTo: 'list', + }, + { + path: 'list', + canActivate: [], + component: usersContainers.ListUsersComponent, + data: { + title: 'Listagem de Usuários', + } as SBRouteData, + }, + { + path: 'input', + canActivate: [], + component: usersContainers.InputUsersComponent, + data: { + title: 'Cadastro de Usuários', + } as SBRouteData, + }, + { + path: 'input/:id', + canActivate: [], + component: usersContainers.InputUsersComponent, + data: { + title: 'Edição de Usuários', + } as SBRouteData, + }, +]; + +@NgModule({ + imports: [UsersModule, RouterModule.forChild(ROUTES)], + exports: [RouterModule], +}) +export class UsersRoutingModule {} diff --git a/backoffice/src/pages/users/users.module.ts b/backoffice/src/pages/users/users.module.ts new file mode 100644 index 0000000..6ca1a86 --- /dev/null +++ b/backoffice/src/pages/users/users.module.ts @@ -0,0 +1,36 @@ +/* tslint:disable: ordered-imports*/ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { ReactiveFormsModule, FormsModule } from '@angular/forms'; + +/* Modules */ +import { AppCommonModule } from '@common/app-common.module'; +import { NavigationModule } from '@modules/navigation/navigation.module'; + +/* Components */ +import * as usersComponents from './components'; + +/* Containers */ +import * as usersContainers from './containers'; + +/* Services */ +import * as usersServices from './services'; +import { TablesModule } from '@modules/tables/tables.module'; +import { GeneralModule } from 'pages/general/general.module'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule, + ReactiveFormsModule, + FormsModule, + AppCommonModule, + NavigationModule, + GeneralModule + ], + providers: [...usersServices.services], + declarations: [...usersContainers.containers, ...usersComponents.components], + exports: [...usersContainers.containers, ...usersComponents.components], +}) +export class UsersModule {} diff --git a/backoffice/src/plataformamaker.sql b/backoffice/src/plataformamaker.sql new file mode 100644 index 0000000..f83bc62 --- /dev/null +++ b/backoffice/src/plataformamaker.sql @@ -0,0 +1,1002 @@ +/* + Navicat Premium Data Transfer + + Source Server : Localhost + Source Server Type : MySQL + Source Server Version : 100432 + Source Host : localhost:3306 + Source Schema : plataformamaker + + Target Server Type : MySQL + Target Server Version : 100432 + File Encoding : 65001 + + Date: 02/05/2024 20:55:39 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for books +-- ---------------------------- +DROP TABLE IF EXISTS `books`; +CREATE TABLE `books` ( + `id` int NOT NULL AUTO_INCREMENT, + `idcourse` int NOT NULL, + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `enabled` tinyint NULL DEFAULT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE, + INDEX `fk_course_book`(`idcourse`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of books +-- ---------------------------- +INSERT INTO `books` VALUES (1, 1, 'Módulo 1', 1, '2024-04-30 18:05:25', NULL); + +-- ---------------------------- +-- Table structure for classcontenttype +-- ---------------------------- +DROP TABLE IF EXISTS `classcontenttype`; +CREATE TABLE `classcontenttype` ( + `id` int NOT NULL AUTO_INCREMENT, + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `enabled` tinyint(1) NULL DEFAULT 0, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of classcontenttype +-- ---------------------------- +INSERT INTO `classcontenttype` VALUES (1, 'Vídeo', 1, '2024-04-15 21:45:20', NULL); +INSERT INTO `classcontenttype` VALUES (2, 'PDF', 1, '2024-04-15 21:45:28', NULL); +INSERT INTO `classcontenttype` VALUES (3, 'Slide', 1, '2024-04-15 21:45:40', NULL); +INSERT INTO `classcontenttype` VALUES (4, 'Jogo', 1, '2024-04-15 21:47:04', NULL); + +-- ---------------------------- +-- Table structure for classes +-- ---------------------------- +DROP TABLE IF EXISTS `classes`; +CREATE TABLE `classes` ( + `id` int NOT NULL AUTO_INCREMENT, + `idcourse` int NOT NULL, + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `sequence` int NULL DEFAULT NULL, + `enabled` tinyint(1) NOT NULL DEFAULT 0, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE, + INDEX `fk_course_classes`(`idcourse`) USING BTREE, + CONSTRAINT `fk_course_classes` FOREIGN KEY (`idcourse`) REFERENCES `courses` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of classes +-- ---------------------------- +INSERT INTO `classes` VALUES (1, 1, 'To be verb', 1, 1, '2024-04-23 19:27:58', '2024-04-23 20:15:32'); +INSERT INTO `classes` VALUES (3, 1, 'Meetings', 2, 1, '2024-04-23 20:14:09', '2024-04-23 20:14:23'); +INSERT INTO `classes` VALUES (4, 2, 'Integrais', 1, 1, '2024-04-25 21:48:05', NULL); +INSERT INTO `classes` VALUES (5, 2, 'Derivadas', 2, 0, '2024-04-25 21:59:43', NULL); +INSERT INTO `classes` VALUES (6, 2, 'EDOs', 3, 0, '2024-04-30 21:43:47', NULL); + +-- ---------------------------- +-- Table structure for classescontent +-- ---------------------------- +DROP TABLE IF EXISTS `classescontent`; +CREATE TABLE `classescontent` ( + `id` int NOT NULL AUTO_INCREMENT, + `idclass` int NOT NULL, + `idclasscontenttype` int NOT NULL, + `idcontent` int NOT NULL, + `sequence` int NULL DEFAULT NULL, + `enabled` tinyint(1) NULL DEFAULT 0, + `createdBy` int NOT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE, + INDEX `fk_class_classcontent`(`idclass`) USING BTREE, + INDEX `fk_classcontenttype_classcontent`(`idclasscontenttype`) USING BTREE, + INDEX `fk_user_classcontent`(`createdBy`) USING BTREE, + CONSTRAINT `fk_class_classcontent` FOREIGN KEY (`idclass`) REFERENCES `classes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_classcontenttype_classcontent` FOREIGN KEY (`idclasscontenttype`) REFERENCES `classcontenttype` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_user_classcontent` FOREIGN KEY (`createdBy`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 68 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of classescontent +-- ---------------------------- +INSERT INTO `classescontent` VALUES (15, 4, 1, 8, 1, 1, 1, '2024-04-25 22:01:23', NULL); +INSERT INTO `classescontent` VALUES (16, 4, 4, 1, 2, 1, 1, '2024-04-25 22:04:38', NULL); +INSERT INTO `classescontent` VALUES (63, 1, 3, 32, 1, 0, 1, '2024-04-26 21:29:35', NULL); +INSERT INTO `classescontent` VALUES (64, 1, 2, 12, 2, 0, 1, '2024-04-26 21:29:56', NULL); +INSERT INTO `classescontent` VALUES (65, 6, 4, 2, 1, 0, 1, '2024-04-30 21:46:11', NULL); +INSERT INTO `classescontent` VALUES (66, 6, 1, 20, 2, 0, 1, '2024-04-30 21:47:02', NULL); +INSERT INTO `classescontent` VALUES (67, 6, 2, 13, 3, 0, 1, '2024-04-30 21:47:19', NULL); + +-- ---------------------------- +-- Table structure for courses +-- ---------------------------- +DROP TABLE IF EXISTS `courses`; +CREATE TABLE `courses` ( + `id` int NOT NULL AUTO_INCREMENT, + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `enabled` tinyint(1) NULL DEFAULT 0, + `duration` int NULL DEFAULT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of courses +-- ---------------------------- +INSERT INTO `courses` VALUES (1, 'Inglês', 1, 365, '2024-04-22 21:26:25', '2024-04-22 21:29:23'); +INSERT INTO `courses` VALUES (2, 'Matemática', 1, 365, '2024-04-22 21:52:05', NULL); +INSERT INTO `courses` VALUES (3, 'Física', 0, 360, '2024-04-30 22:02:28', NULL); +INSERT INTO `courses` VALUES (4, 'Física', 0, 360, '2024-04-30 22:02:58', NULL); + +-- ---------------------------- +-- Table structure for games +-- ---------------------------- +DROP TABLE IF EXISTS `games`; +CREATE TABLE `games` ( + `id` int NOT NULL AUTO_INCREMENT, + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of games +-- ---------------------------- +INSERT INTO `games` VALUES (1, 'Vetores', NULL, '2024-04-25 22:04:38', NULL); +INSERT INTO `games` VALUES (2, 'Gamee', 'url do game', '2024-04-30 21:46:11', NULL); + +-- ---------------------------- +-- Table structure for log_login +-- ---------------------------- +DROP TABLE IF EXISTS `log_login`; +CREATE TABLE `log_login` ( + `id` int NOT NULL AUTO_INCREMENT, + `iduser` int NULL DEFAULT NULL, + `idserial` int NULL DEFAULT NULL, + `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + PRIMARY KEY (`id`) USING BTREE, + INDEX `fk_user_log_login`(`iduser`) USING BTREE, + INDEX `fk_serials_log_login`(`idserial`) USING BTREE, + CONSTRAINT `fk_serials_log_login` FOREIGN KEY (`idserial`) REFERENCES `serials` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_user_log_login` FOREIGN KEY (`iduser`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 72 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of log_login +-- ---------------------------- +INSERT INTO `log_login` VALUES (1, 1, NULL, '', '2024-04-15 23:13:54'); +INSERT INTO `log_login` VALUES (2, 1, NULL, '2', '2024-04-15 23:15:39'); +INSERT INTO `log_login` VALUES (3, 1, NULL, '11', '2024-04-15 23:40:12'); +INSERT INTO `log_login` VALUES (4, 1, NULL, '11', '2024-04-16 19:24:14'); +INSERT INTO `log_login` VALUES (5, 1, NULL, '11', '2024-04-16 19:24:50'); +INSERT INTO `log_login` VALUES (6, 1, NULL, '11', '2024-04-16 19:25:05'); +INSERT INTO `log_login` VALUES (7, 1, NULL, '11', '2024-04-16 19:25:25'); +INSERT INTO `log_login` VALUES (8, 1, NULL, '11', '2024-04-16 19:26:45'); +INSERT INTO `log_login` VALUES (9, 1, NULL, '11', '2024-04-16 20:01:42'); +INSERT INTO `log_login` VALUES (10, 1, NULL, '11', '2024-04-16 20:03:38'); +INSERT INTO `log_login` VALUES (11, 1, NULL, '11', '2024-04-16 20:05:35'); +INSERT INTO `log_login` VALUES (12, 1, NULL, '11', '2024-04-16 20:08:48'); +INSERT INTO `log_login` VALUES (13, 1, NULL, '11', '2024-04-16 20:09:23'); +INSERT INTO `log_login` VALUES (14, 1, NULL, '11', '2024-04-16 20:18:23'); +INSERT INTO `log_login` VALUES (15, 1, NULL, '11', '2024-04-16 20:25:31'); +INSERT INTO `log_login` VALUES (16, 1, NULL, '11', '2024-04-16 20:54:58'); +INSERT INTO `log_login` VALUES (17, 1, NULL, '11', '2024-04-16 21:57:14'); +INSERT INTO `log_login` VALUES (18, 1, NULL, '11', '2024-04-16 22:16:41'); +INSERT INTO `log_login` VALUES (19, 1, NULL, '11', '2024-04-16 23:09:08'); +INSERT INTO `log_login` VALUES (20, 1, NULL, '11', '2024-04-18 21:11:24'); +INSERT INTO `log_login` VALUES (21, 1, NULL, '11', '2024-04-18 22:01:50'); +INSERT INTO `log_login` VALUES (22, 1, NULL, '11', '2024-04-18 22:03:00'); +INSERT INTO `log_login` VALUES (23, 1, NULL, '11', '2024-04-18 22:16:14'); +INSERT INTO `log_login` VALUES (24, 1, NULL, '11', '2024-04-18 22:20:05'); +INSERT INTO `log_login` VALUES (25, 1, NULL, '123', '2024-04-22 19:37:39'); +INSERT INTO `log_login` VALUES (26, 1, NULL, '123', '2024-04-22 19:39:09'); +INSERT INTO `log_login` VALUES (27, 1, NULL, '11', '2024-04-22 19:40:59'); +INSERT INTO `log_login` VALUES (28, 1, NULL, '11', '2024-04-22 20:26:49'); +INSERT INTO `log_login` VALUES (29, 1, NULL, '11', '2024-04-22 21:08:45'); +INSERT INTO `log_login` VALUES (30, 1, NULL, '11', '2024-04-22 21:39:10'); +INSERT INTO `log_login` VALUES (31, 1, NULL, '11', '2024-04-22 21:46:28'); +INSERT INTO `log_login` VALUES (32, 1, NULL, '11', '2024-04-23 19:23:12'); +INSERT INTO `log_login` VALUES (33, 1, NULL, '11', '2024-04-23 20:34:55'); +INSERT INTO `log_login` VALUES (34, 1, NULL, '11', '2024-04-23 21:49:40'); +INSERT INTO `log_login` VALUES (35, 1, NULL, '::1', '2024-04-25 19:46:39'); +INSERT INTO `log_login` VALUES (36, 1, NULL, '177.86.235.87', '2024-04-25 19:56:23'); +INSERT INTO `log_login` VALUES (37, 1, NULL, '177.86.235.87', '2024-04-25 20:27:07'); +INSERT INTO `log_login` VALUES (38, 1, NULL, '177.86.235.87', '2024-04-25 20:27:48'); +INSERT INTO `log_login` VALUES (39, 1, NULL, '177.86.235.87', '2024-04-25 20:27:48'); +INSERT INTO `log_login` VALUES (40, 1, NULL, '177.86.235.87', '2024-04-25 20:28:29'); +INSERT INTO `log_login` VALUES (41, 1, NULL, '177.86.235.87', '2024-04-25 21:16:39'); +INSERT INTO `log_login` VALUES (42, 1, NULL, '177.86.235.87', '2024-04-25 21:17:09'); +INSERT INTO `log_login` VALUES (43, 1, NULL, '177.86.235.87', '2024-04-26 18:08:02'); +INSERT INTO `log_login` VALUES (44, 1, NULL, '177.86.235.87', '2024-04-26 18:17:06'); +INSERT INTO `log_login` VALUES (45, 1, NULL, '177.86.235.87', '2024-04-26 18:17:40'); +INSERT INTO `log_login` VALUES (46, 1, NULL, '177.86.235.87', '2024-04-26 18:18:22'); +INSERT INTO `log_login` VALUES (47, 1, NULL, '177.86.235.87', '2024-04-26 18:19:58'); +INSERT INTO `log_login` VALUES (48, 1, NULL, '177.86.235.87', '2024-04-26 18:20:32'); +INSERT INTO `log_login` VALUES (49, 1, NULL, '177.86.235.87', '2024-04-26 18:21:28'); +INSERT INTO `log_login` VALUES (50, 1, NULL, '177.86.235.87', '2024-04-26 18:21:57'); +INSERT INTO `log_login` VALUES (51, 1, NULL, '177.86.235.87', '2024-04-26 18:26:53'); +INSERT INTO `log_login` VALUES (52, 1, NULL, '177.86.235.87', '2024-04-26 18:31:36'); +INSERT INTO `log_login` VALUES (53, 1, NULL, '177.128.10.114', '2024-04-30 17:49:22'); +INSERT INTO `log_login` VALUES (59, 1, NULL, '123', '2024-04-30 19:26:42'); +INSERT INTO `log_login` VALUES (60, 1, NULL, '177.128.10.114', '2024-04-30 19:28:24'); +INSERT INTO `log_login` VALUES (65, 1, NULL, '177.128.10.114', '2024-04-30 19:52:14'); +INSERT INTO `log_login` VALUES (66, 1, NULL, '177.128.10.114', '2024-04-30 19:52:31'); +INSERT INTO `log_login` VALUES (67, 1, NULL, '177.128.10.114', '2024-05-02 18:43:30'); +INSERT INTO `log_login` VALUES (68, 1, NULL, '177.128.10.114', '2024-05-02 19:02:52'); +INSERT INTO `log_login` VALUES (69, 1, NULL, '177.128.10.114', '2024-05-02 19:02:57'); +INSERT INTO `log_login` VALUES (70, 1, NULL, '177.128.10.114', '2024-05-02 20:33:53'); +INSERT INTO `log_login` VALUES (71, 1, NULL, '177.128.10.114', '2024-05-02 20:34:03'); + +-- ---------------------------- +-- Table structure for pdfs +-- ---------------------------- +DROP TABLE IF EXISTS `pdfs`; +CREATE TABLE `pdfs` ( + `id` int NOT NULL AUTO_INCREMENT, + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `url` varchar(999) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of pdfs +-- ---------------------------- +INSERT INTO `pdfs` VALUES (1, 'Guia básico', 'https://campanhas.universidadedoingles.com.br/wp-content/uploads/2016/02/guia-pr%C3%A1tico-ingles.pdf', '2024-04-25 20:15:47', NULL); +INSERT INTO `pdfs` VALUES (12, 'Comprovante', '', '2024-04-26 21:29:56', NULL); +INSERT INTO `pdfs` VALUES (13, 'PDFf', NULL, '2024-04-30 21:47:19', NULL); + +-- ---------------------------- +-- Table structure for serials +-- ---------------------------- +DROP TABLE IF EXISTS `serials`; +CREATE TABLE `serials` ( + `id` int NOT NULL AUTO_INCREMENT, + `idcourse` int NOT NULL, + `idserialslote` int NOT NULL, + `accesskey` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `validated` tinyint NULL DEFAULT NULL, + `validatedAt` datetime(0) NULL DEFAULT NULL, + `userName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `expiresAt` datetime(0) NULL DEFAULT NULL, + `enabled` tinyint NULL DEFAULT 1, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`, `accesskey`) USING BTREE, + INDEX `fk_serialslote_serials`(`idserialslote`) USING BTREE, + INDEX `id`(`id`) USING BTREE, + INDEX `fk_course_serials`(`idcourse`) USING BTREE, + CONSTRAINT `fk_course_serials` FOREIGN KEY (`idcourse`) REFERENCES `courses` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_serialslote_serials` FOREIGN KEY (`idserialslote`) REFERENCES `serialslote` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 62 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of serials +-- ---------------------------- +INSERT INTO `serials` VALUES (55, 2, 17, 'c324b7cb65', NULL, NULL, NULL, '2025-04-30 00:00:00', 1, '2024-04-30 21:09:32', NULL); +INSERT INTO `serials` VALUES (56, 2, 17, '7733482379', 1, '2024-04-30 21:33:28', 'Diego Costa', '2025-04-30 00:00:00', 1, '2024-04-30 21:09:32', '2024-04-30 21:33:28'); +INSERT INTO `serials` VALUES (57, 2, 17, '983589f68a', NULL, NULL, NULL, '2025-04-30 00:00:00', 1, '2024-04-30 21:09:32', NULL); + +-- ---------------------------- +-- Table structure for serialslote +-- ---------------------------- +DROP TABLE IF EXISTS `serialslote`; +CREATE TABLE `serialslote` ( + `id` int NOT NULL AUTO_INCREMENT, + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `createdBy` int NOT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE, + INDEX `fk_users_serialslote`(`createdBy`) USING BTREE, + CONSTRAINT `fk_users_serialslote` FOREIGN KEY (`createdBy`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of serialslote +-- ---------------------------- +INSERT INTO `serialslote` VALUES (17, 'ALM e', 1, '2024-04-30 21:09:32', '2024-04-30 21:17:05'); + +-- ---------------------------- +-- Table structure for slides +-- ---------------------------- +DROP TABLE IF EXISTS `slides`; +CREATE TABLE `slides` ( + `id` int NOT NULL AUTO_INCREMENT, + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `amount` int NULL DEFAULT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 33 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of slides +-- ---------------------------- +INSERT INTO `slides` VALUES (32, 'Montagem', 3, '2024-04-26 21:29:35', NULL); + +-- ---------------------------- +-- Table structure for usercourses +-- ---------------------------- +DROP TABLE IF EXISTS `usercourses`; +CREATE TABLE `usercourses` ( + `id` int NOT NULL AUTO_INCREMENT, + `iduser` int NOT NULL, + `idcourse` int NOT NULL, + `expired` tinyint(1) NULL DEFAULT 1, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`, `iduser`, `idcourse`) USING BTREE, + INDEX `fk_user_usercourses`(`iduser`) USING BTREE, + INDEX `fk_course_usercourses`(`idcourse`) USING BTREE, + CONSTRAINT `fk_course_usercourses` FOREIGN KEY (`idcourse`) REFERENCES `courses` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_user_usercourses` FOREIGN KEY (`iduser`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of usercourses +-- ---------------------------- +INSERT INTO `usercourses` VALUES (2, 1, 1, 0, '2024-04-25 23:16:28', '2024-04-25 23:25:04'); + +-- ---------------------------- +-- Table structure for users +-- ---------------------------- +DROP TABLE IF EXISTS `users`; +CREATE TABLE `users` ( + `id` int NOT NULL AUTO_INCREMENT, + `idusertype` int NOT NULL, + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `enabled` tinyint(1) NULL DEFAULT 0, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`email`) USING BTREE, + INDEX `id`(`id`) USING BTREE, + INDEX `fk_usertype_users`(`idusertype`) USING BTREE, + CONSTRAINT `fk_usertype_users` FOREIGN KEY (`idusertype`) REFERENCES `usertype` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of users +-- ---------------------------- +INSERT INTO `users` VALUES (1, 1, 'Diego Freitas', 'zendionmazinni@gmail.com', 'Z210203!', 1, '2024-04-15 21:47:51', '2024-04-22 20:40:11'); + +-- ---------------------------- +-- Table structure for userstepclass +-- ---------------------------- +DROP TABLE IF EXISTS `userstepclass`; +CREATE TABLE `userstepclass` ( + `id` int NOT NULL AUTO_INCREMENT, + `iduser` int NOT NULL, + `idclass` int NOT NULL, + `step` int NULL DEFAULT NULL, + `completed` bit(1) NULL DEFAULT b'0', + `completedAt` datetime(0) NULL DEFAULT NULL, + `note` int NULL DEFAULT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`, `iduser`, `idclass`) USING BTREE, + INDEX `fk_user_userstepclass`(`iduser`) USING BTREE, + INDEX `fk_class_userstepclass`(`idclass`) USING BTREE, + CONSTRAINT `fk_class_userstepclass` FOREIGN KEY (`idclass`) REFERENCES `classes` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_user_userstepclass` FOREIGN KEY (`iduser`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of userstepclass +-- ---------------------------- + +-- ---------------------------- +-- Table structure for usertype +-- ---------------------------- +DROP TABLE IF EXISTS `usertype`; +CREATE TABLE `usertype` ( + `id` int NOT NULL AUTO_INCREMENT, + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of usertype +-- ---------------------------- +INSERT INTO `usertype` VALUES (1, 'Administrador', '2024-04-15 21:45:00', NULL); +INSERT INTO `usertype` VALUES (2, 'Aluno', '2024-04-15 21:45:03', NULL); + +-- ---------------------------- +-- Table structure for videos +-- ---------------------------- +DROP TABLE IF EXISTS `videos`; +CREATE TABLE `videos` ( + `id` int NOT NULL AUTO_INCREMENT, + `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `url` varchar(999) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `createdAt` datetime(0) NULL DEFAULT current_timestamp(0), + `updatedAt` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of videos +-- ---------------------------- +INSERT INTO `videos` VALUES (2, 'asd', 'asd', '2024-04-25 20:34:38', NULL); +INSERT INTO `videos` VALUES (8, 'adasd', 'https://campanhas.universidadedoingles.com.br/wp-content/uploads/2016/02/guia-pr%C3%A1tico-ingles.pdf', '2024-04-25 22:01:23', NULL); +INSERT INTO `videos` VALUES (20, 'Videoo', 'url do video', '2024-04-30 21:47:02', NULL); + +-- ---------------------------- +-- View structure for listbooks +-- ---------------------------- +DROP VIEW IF EXISTS `listbooks`; +CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `listbooks` AS SELECT + sl.id, + sl.description, + us.name AS createdBy, + sl.createdAt, + (SELECT s.idcourse FROM serials s WHERE s.idserialslote = sl.id LIMIT 1) AS idcourse, + (SELECT co.description FROM serials s INNER JOIN courses co ON co.id = s.idcourse WHERE s.idserialslote = sl.id LIMIT 1) AS courseName, + (SELECT COUNT(1) FROM serials s WHERE s.idserialslote = sl.id) AS books +FROM serialslote sl +INNER JOIN users us ON us.id = sl.createdBy ; + +-- ---------------------------- +-- View structure for listcourses +-- ---------------------------- +DROP VIEW IF EXISTS `listcourses`; +CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `listcourses` AS SELECT + co.id AS id, + co.description, + co.duration, + CASE WHEN co.enabled = 1 THEN TRUE ELSE FALSE END AS enabled +FROM courses co +ORDER BY co.description ; + +-- ---------------------------- +-- View structure for listusers +-- ---------------------------- +DROP VIEW IF EXISTS `listusers`; +CREATE ALGORITHM = UNDEFINED SQL SECURITY DEFINER VIEW `listusers` AS SELECT + us.id AS id, + us.idusertype, + ut.description AS role, + us.name, + us.email, + CASE WHEN us.enabled = 1 THEN TRUE ELSE FALSE END AS enabled +FROM users us +INNER JOIN usertype ut ON ut.id = us.idusertype +ORDER BY us.name ; + +-- ---------------------------- +-- Procedure structure for classesByCourse +-- ---------------------------- +DROP PROCEDURE IF EXISTS `classesByCourse`; +delimiter ;; +CREATE PROCEDURE `classesByCourse`(IN `_idcourse` int) +BEGIN + select + cl.id as id, + co.id as idcourse, + co.description as courseName, + cl.description as description, + cl.sequence as sequence, + cl.enabled as enabled, + (select count(1) from classescontent cc where cc.idclass = cl.id) as amountContent + from classes cl + inner join courses co on co.id = cl.idcourse + where cl.idcourse = _idcourse + order by cl.sequence, cl.description; +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for classesContentByClass +-- ---------------------------- +DROP PROCEDURE IF EXISTS `classesContentByClass`; +delimiter ;; +CREATE PROCEDURE `classesContentByClass`(IN `_idclass` int) +BEGIN + select + cc.id, + co.id as idcourse, + co.description as courseName, + cl.id as idclass, + cl.description as className, + cl.sequence as sequenceClass, + cl.enabled as enabledClass, + cc.idclasscontenttype, + ct.description as contentType, + cc.idcontent, + case + when cc.idclasscontenttype = 1 then vd.description + when cc.idclasscontenttype = 2 then pf.description + when cc.idclasscontenttype = 3 then sl.description + when cc.idclasscontenttype = 4 then gm.description + end as contentDescription, + case + when cc.idclasscontenttype = 1 then vd.url + when cc.idclasscontenttype = 2 then NULL + when cc.idclasscontenttype = 3 then NULL + when cc.idclasscontenttype = 4 then gm.url + end as contentUrl, + case + when cc.idclasscontenttype = 1 then NULL + when cc.idclasscontenttype = 2 then NULL + when cc.idclasscontenttype = 3 then sl.amount + when cc.idclasscontenttype = 4 then NULL + end as contentAmount, + cc.sequence as sequenceContent, + cc.enabled as enabledContent + from classes cl + inner join courses co on co.id = cl.idcourse + inner join classescontent cc on cc.idclass = cl.id + inner join classcontenttype ct on ct.id = cc.idclasscontenttype + left join videos vd on vd.id = cc.idcontent and cc.idclasscontenttype = 1 + left join pdfs pf on pf.id = cc.idcontent and cc.idclasscontenttype = 2 + left join slides sl on sl.id = cc.idcontent and cc.idclasscontenttype = 3 + left join games gm on gm.id = cc.idcontent and cc.idclasscontenttype = 4 + where cl.id = _idclass + order by cc.sequence; +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for createClassContent +-- ---------------------------- +DROP PROCEDURE IF EXISTS `createClassContent`; +delimiter ;; +CREATE PROCEDURE `createClassContent`(IN `_idclasscontenttype` INT, + IN `_description` VARCHAR(255), + IN `_url` VARCHAR(255), + IN `_amount` INT, + IN `_idclass` INT, + IN `_idusers` INT, + IN `_enabled` TINYINT, + IN `_sequence` INT, + OUT `_idcontent` INT) +BEGIN + DECLARE new_id INT; + DECLARE seq INT; + + -- Determinar a sequência para o idclass + SELECT IFNULL(MAX(sequence), 0) + 1 INTO seq FROM classescontent WHERE idclass = _idclass; + + CASE _idclasscontenttype + WHEN 1 THEN + -- Inserir na tabela videos e capturar o novo ID + INSERT INTO videos (description, url) + VALUES (_description, _url); + SET new_id = LAST_INSERT_ID(); + WHEN 2 THEN + -- Inserir na tabela pdfs e capturar o novo ID + INSERT INTO pdfs (description) + VALUES (_description); + SET new_id = LAST_INSERT_ID(); + WHEN 3 THEN + -- Inserir na tabela slides e capturar o novo ID + INSERT INTO slides (description, amount) + VALUES (_description, _amount); + SET new_id = LAST_INSERT_ID(); + WHEN 4 THEN + -- Inserir na tabela games e capturar o novo ID + INSERT INTO games (description, url) + VALUES (_description, _url); + SET new_id = LAST_INSERT_ID(); + ELSE + -- Opcional: Tratar o caso em que idclasscontenttype não corresponde a nenhum tipo esperado + SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Tipo de conteúdo inválido'; + END CASE; + + -- Inserir na tabela classescontent com os valores capturados + INSERT INTO classescontent (idclass, idclasscontenttype, idcontent, sequence, enabled, createdBy) + VALUES (_idclass, _idclasscontenttype, new_id, CASE WHEN _sequence IS NULL OR _sequence = 'null' THEN seq ELSE _sequence END, _enabled, _idusers); + + SELECT new_id INTO _idcontent; + +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for deleteClassContent +-- ---------------------------- +DROP PROCEDURE IF EXISTS `deleteClassContent`; +delimiter ;; +CREATE PROCEDURE `deleteClassContent`(IN `_id` INT, + OUT `_contenttype` INT, + OUT `_oldidcontent` INT) +BEGIN + + DECLARE _idclasscontenttype INT; + DECLARE _idcontent INT; + DECLARE _idclass INT; + + SELECT idclass, idclasscontenttype, idcontent INTO _idclass, _idclasscontenttype, _idcontent FROM classescontent WHERE id = _id; + + SET _oldidcontent = _idcontent; + + SET _contenttype = _idclasscontenttype; + + CASE _idclasscontenttype + WHEN 1 THEN + -- Excluir na tabela videos + DELETE FROM videos WHERE id = _idcontent; + WHEN 2 THEN + -- Excluir na tabela pdfs + DELETE FROM pdfs WHERE id = _idcontent; + WHEN 3 THEN + -- Excluir na tabela slides + DELETE FROM slides WHERE id = _idcontent; + WHEN 4 THEN + -- Excluir na tabela games + DELETE FROM games WHERE id = _idcontent; + ELSE + -- Opcional: Tratar o caso em que idclasscontenttype não corresponde a nenhum tipo esperado + SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Tipo de conteúdo inválido'; + END CASE; + + -- Excluir na tabela classescontent + DELETE FROM classescontent WHERE id = _id; + + -- Atualiza as sequências dos registros restantes em classescontent para idclass + SET @new_sequence := 0; + UPDATE classescontent + SET sequence = (@new_sequence := @new_sequence + 1) + WHERE idclass = _idclass + ORDER BY sequence ASC; + +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for deleteSerialLote +-- ---------------------------- +DROP PROCEDURE IF EXISTS `deleteSerialLote`; +delimiter ;; +CREATE PROCEDURE `deleteSerialLote`(IN `_id` INT) +BEGIN + + DELETE FROM serials WHERE idserialslote = _id; + + DELETE FROM serialslote WHERE id = _id; + +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for generateSerialLote +-- ---------------------------- +DROP PROCEDURE IF EXISTS `generateSerialLote`; +delimiter ;; +CREATE PROCEDURE `generateSerialLote`(IN `_description` VARCHAR(255), + IN `_amount` INT, + IN `_idcourse` INT, + IN `_createdBy` INT) +BEGIN + DECLARE _idseriallote INT; + DECLARE _duration INT; + DECLARE _current_date DATE; + DECLARE _accesskey VARCHAR(10); -- chave de acesso de 10 caracteres + DECLARE _counter INT DEFAULT 1; -- contador para garantir unicidade na combinação + DECLARE _current_time DATETIME; + DECLARE _second INT; + DECLARE _hour INT; + DECLARE _month INT; + DECLARE _minute INT; + + -- Obter a duração do curso relacionado ao livro a partir da tabela courses + SELECT c.duration INTO _duration + FROM courses c + WHERE c.id = _idcourse; + + -- Obter a data atual + SET _current_date = CURDATE(); + + -- Criar um novo lote em serialslote + INSERT INTO serialslote (description, createdBy) + VALUES (_description, _createdBy); + + -- Obter o ID do lote criado + SET _idseriallote = LAST_INSERT_ID(); + + -- Gerar registros na tabela serials com base no amount + WHILE _amount > 0 DO + -- Gerar chave de acesso única com base em uma combinação de valores exclusivos + -- Obter o horário atual + SET _current_time = NOW(); + + -- Extrair os componentes de tempo (segundo, hora, mês e minuto) + SET _second = SECOND(_current_time); + SET _hour = HOUR(_current_time); + SET _month = MONTH(_current_time); + SET _minute = MINUTE(_current_time); + + -- Formatar os valores para cada componente e concatenar para formar o código de acesso + SET _accessKey = CONCAT( + LPAD(_second, 2, '0'), -- Segundo com 2 dígitos + LPAD(_counter, 4, '0'), -- Contador com 4 dígitos + LPAD(_hour, 2, '0'), -- Hora com 2 dígitos + LPAD(_month, 2, '0'), -- Mês com 2 dígitos + LPAD(_idseriallote, 3, '0'), -- ID do lote com 3 dígitos + LPAD(_minute, 2, '0') -- Minuto com 2 dígitos + ); + + -- Calcular a data de expiração (current_date + duração) + INSERT INTO serials (idcourse, idserialslote, accesskey, expiresAt) + VALUES (_idcourse, _idseriallote, _accesskey, DATE_ADD(_current_date, INTERVAL _duration DAY)); + + -- Incrementar o contador + SET _counter = _counter + 1; + + -- Reduzir o amount em 1 + SET _amount = _amount - 1; + END WHILE; + + CALL serialsByLote(_idseriallote); +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for getBook +-- ---------------------------- +DROP PROCEDURE IF EXISTS `getBook`; +delimiter ;; +CREATE PROCEDURE `getBook`(IN `_idserialsbook` INT) +BEGIN + + SELECT + sl.id, + sl.description, + sl.createdBy, + (SELECT COUNT(1) FROM serials s WHERE s.idserialslote = sl.id) AS amount, + (SELECT s.idcourse FROM serials s WHERE s.idserialslote = sl.id LIMIT 1) AS idcourse + FROM serialslote sl + WHERE id = _idserialsbook; + +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for login +-- ---------------------------- +DROP PROCEDURE IF EXISTS `login`; +delimiter ;; +CREATE PROCEDURE `login`(IN `_email` VARCHAR(255), + IN `_password` VARCHAR(255), + IN `_ip` VARCHAR(45), + OUT `success` TINYINT(1), + OUT `usertypeId` INT, + OUT `userId` INT, + OUT `userName` VARCHAR(60), + OUT `validated` TINYINT(1)) +BEGIN + -- Inicializa os parâmetros de saída + SET success = b'0'; + SET usertypeId = NULL; + SET userId = NULL; + SET userName = ''; + SET validated = 0; + + -- Tenta encontrar um usuário que corresponda ao email e senha fornecidos + SELECT us.idusertype, us.id, us.name INTO usertypeId, userId, userName + FROM users us + INNER JOIN usertype ut ON ut.id = us.idusertype + WHERE us.email = _email AND us.password = _password AND us.enabled = 1 + LIMIT 1; + + -- Se um idusertype foi encontrado, ajusta o sucesso para 1 + IF usertypeId IS NOT NULL THEN + SET success = 1; + SET validated = 1; + -- Insere um registro na tabela log_login com o id do usuário e o IP fornecido + INSERT INTO log_login (iduser, ip) VALUES (userId, _ip); + END IF; +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for loginBook +-- ---------------------------- +DROP PROCEDURE IF EXISTS `loginBook`; +delimiter ;; +CREATE PROCEDURE `loginBook`(IN `_accesskey` VARCHAR(255), + IN `_ip` VARCHAR(45), + OUT `success` BIT(1), + OUT `usertypeId` INT, + OUT `userId` INT, + OUT `userName` VARCHAR(60), + OUT `validated` TINYINT(1)) +BEGIN + -- Inicializa os parâmetros de saída + SET success = b'0'; + SET userId = NULL; + SET userName = ''; + SET userTypeId = 2; + + -- Tenta encontrar um usuário que corresponda ao email e senha fornecidos + SELECT s.id, COALESCE(s.userName, ''), COALESCE(s.validated, 0) INTO userId, userName, validated + FROM serials s + WHERE s.accesskey = _accesskey and s.enabled = 1 + LIMIT 1; + + -- Se um idusertype foi encontrado, ajusta o sucesso para 1 + IF userId IS NOT NULL THEN + SET success = b'1'; + -- Insere um registro na tabela log_login com o id do usuário e o IP fornecido + INSERT INTO log_login (idserial, ip) VALUES (userId, _ip); + END IF; +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for serialsByLote +-- ---------------------------- +DROP PROCEDURE IF EXISTS `serialsByLote`; +delimiter ;; +CREATE PROCEDURE `serialsByLote`(IN `_idserialslote` int) +BEGIN + + SELECT + s.id, + s.idcourse, + sl.description, + c.description as courseName, + sl.createdBy, + u.name as userName, + sl.createdAt, + s.idserialslote, + s.accesskey, + s.expiresAt, + CASE WHEN CURRENT_TIMESTAMP > s.expiresAt THEN 1 ELSE 0 END AS expired, + COALESCE(s.validated, 0) as validated, + s.validatedAt, + s.userName AS owner, + s.enabled + FROM serials s + INNER JOIN serialslote sl ON sl.id = s.idserialslote + INNER JOIN courses c ON c.id = s.idcourse + INNER JOIN users u ON u.id = sl.createdBy + WHERE s.idserialslote = _idserialslote; + +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for updateClassContent +-- ---------------------------- +DROP PROCEDURE IF EXISTS `updateClassContent`; +delimiter ;; +CREATE PROCEDURE `updateClassContent`(IN `_id` INT, + IN `_description` VARCHAR(255), + IN `_url` VARCHAR(255), + IN `_amount` INT, + IN `_sequence` INT, + IN `_enabled` TINYINT) +BEGIN + + DECLARE _idclasscontenttype INT; + DECLARE _idcontent INT; + + SELECT idclasscontenttype, idcontent INTO _idclasscontenttype, _idcontent FROM classescontent WHERE id = _id; + + CASE _idclasscontenttype + WHEN 1 THEN + -- Atualizar na tabela videos + UPDATE videos SET description = _description, url = _url WHERE id = _idcontent; + WHEN 2 THEN + -- Atualizar na tabela pdfs + UPDATE pdfs SET description = _description WHERE id = _idcontent; + WHEN 3 THEN + -- Atualizar na tabela slides + UPDATE slides SET description = _description, amount = _amount WHERE id = _idcontent; + WHEN 4 THEN + -- Atualizar na tabela games + UPDATE games SET description = _description, url = _url WHERE id = _idcontent; + ELSE + -- Opcional: Tratar o caso em que idclasscontenttype não corresponde a nenhum tipo esperado + SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Tipo de conteúdo inválido'; + END CASE; + + -- Atualizar na tabela classescontent com os valores capturados + UPDATE classescontent SET sequence = _sequence, enabled = _enabled WHERE id = _id; + +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for userClassByCourse +-- ---------------------------- +DROP PROCEDURE IF EXISTS `userClassByCourse`; +delimiter ;; +CREATE PROCEDURE `userClassByCourse`(IN `_idcourse` int, IN `_iduser` int) +BEGIN + select + co.id as idcourse, + co.description as courseName, + cl.id as idclass, + cl.description as className, + cl.sequence as sequence, + sc.step, + (select count(1) from classescontent cc where cc.idclass = cl.id and cc.enabled = 1) as amountContent, + sc.completed, + sc.note, + sc.id as iduserstepclass + from classes cl + inner join courses co on co.id = cl.idcourse + left join userstepclass sc on sc.idclass = cl.id + where cl.idcourse = _idcourse and sc.iduser = _iduser and cl.enabled = 1 + order by cl.sequence, cl.description; +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for userCourses +-- ---------------------------- +DROP PROCEDURE IF EXISTS `userCourses`; +delimiter ;; +CREATE PROCEDURE `userCourses`(IN `_iduser` int) +BEGIN + SELECT + *, + round(A.classesCompleted / A.amountClasses * 100, 2) as progress + FROM + (select + uc.id, + uc.iduser, + uc.idcourse, + co.description as courseName, + uc.expired, + DATEDIFF(DATE_ADD(uc.createdAt, INTERVAL co.duration DAY), CURDATE()) AS daysRemaining, + (select count(1) from classes cl where cl.idcourse = co.id and cl.enabled = 1) as amountClasses, + (select count(1) from classes cl inner join userstepclass sc on sc.idclass = cl.id where cl.idcourse = co.id and cl.enabled = 1 and sc.iduser = 1 and sc.completed = 1) as classesCompleted, + uc.createdAt as addedAt + from usercourses uc + inner join courses co on co.id = uc.idcourse + where uc.iduser = _iduser ) A + order by A.courseName; +END +;; +delimiter ; + +-- ---------------------------- +-- Procedure structure for validateBook +-- ---------------------------- +DROP PROCEDURE IF EXISTS `validateBook`; +delimiter ;; +CREATE PROCEDURE `validateBook`(IN `_idserial` INT, IN `_userName` VARCHAR(255)) +BEGIN + + UPDATE serials SET validated = 1, validatedAt = CURRENT_TIMESTAMP, userName = _userName WHERE id = _idserial; + +END +;; +delimiter ; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/backoffice/src/polyfills.ts b/backoffice/src/polyfills.ts new file mode 100644 index 0000000..2f258e5 --- /dev/null +++ b/backoffice/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 + */ + +/** IE10 and 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.ts'; + * + * 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. + +/*************************************************************************************************** + * APPLICATION IMPORTS + */ diff --git a/backoffice/src/styles/_global.scss b/backoffice/src/styles/_global.scss new file mode 100644 index 0000000..5841b08 --- /dev/null +++ b/backoffice/src/styles/_global.scss @@ -0,0 +1,14 @@ +// Global styling for this template + +html, +body { + height: 100%; +} + +// Set spacing on containers for page symmetry + +.container, +.container-fluid { + padding-left: $grid-gutter-width; + padding-right: $grid-gutter-width; +} diff --git a/backoffice/src/styles/_variables.scss b/backoffice/src/styles/_variables.scss new file mode 100644 index 0000000..79aaf27 --- /dev/null +++ b/backoffice/src/styles/_variables.scss @@ -0,0 +1,9 @@ +// Import Bootstrap variables for use within theme +@import "bootstrap/scss/functions.scss"; +@import "bootstrap/scss/variables.scss"; + +// Import spacing variables +@import "./variables/spacing.scss"; + +// Import navigation variables +@import "./variables/navigation.scss"; diff --git a/backoffice/src/styles/layout/_authentication.scss b/backoffice/src/styles/layout/_authentication.scss new file mode 100644 index 0000000..2728ba3 --- /dev/null +++ b/backoffice/src/styles/layout/_authentication.scss @@ -0,0 +1,12 @@ +#layoutAuthentication { + display: flex; + flex-direction: column; + min-height: 100vh; + #layoutAuthentication_content { + min-width: 0; + flex-grow: 1; + } + #layoutAuthentication_footer { + min-width: 0; + } +} diff --git a/backoffice/src/styles/layout/_dashboard-default.scss b/backoffice/src/styles/layout/_dashboard-default.scss new file mode 100644 index 0000000..f8fac6b --- /dev/null +++ b/backoffice/src/styles/layout/_dashboard-default.scss @@ -0,0 +1,78 @@ +// Default behavior for the sidenav layout +// The default positioning for the sidenav is a static position + +#layoutSidenav { + display: flex; + // Wraps the .sb-sidenav element and sets the size + #layoutSidenav_nav { + flex-basis: $sidenav-base-width; + flex-shrink: 0; + transition: transform 0.15s ease-in-out; + z-index: $zindex-sidenav; + // Mobile first transform - by default the sidenav will be moved off-canvas + transform: translateX(-$sidenav-base-width); + } + // Wraps the content when using the sidenav layout + #layoutSidenav_content { + position: relative; + display: flex; + flex-direction: column; + justify-content: space-between; + min-width: 0; + flex-grow: 1; + min-height: calc(100vh - #{$topnav-base-height}); + margin-left: -$sidenav-base-width; + } +} + +// Default behavior for the static sidenav collapse +.sb-sidenav-toggled { + #layoutSidenav { + #layoutSidenav_nav { + transform: translateX(0); + } + #layoutSidenav_content { + &:before { + content: ""; + display: block; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: $black; + z-index: $zindex-modal-backdrop; + opacity: 0.5; + transition: opacity 0.3s ease-in-out; + } + } + } +} + +// Responsive styling for the sidenav layout +@include media-breakpoint-up(lg) { + #layoutSidenav { + #layoutSidenav_nav { + transform: translateX(0); + } + #layoutSidenav_content { + margin-left: 0; + transition: all 0.15s ease-in-out; + } + } + // Behavior for the sidenav collapse on screens larger than the med breakpoint + .sb-sidenav-toggled { + #layoutSidenav { + #layoutSidenav_nav { + transform: translateX(-$sidenav-base-width); + } + #layoutSidenav_content { + margin-left: -$sidenav-base-width; + // Removes the sidenav overlay on screens larger than the med breakpoint + &:before { + display: none; + } + } + } + } +} diff --git a/backoffice/src/styles/layout/_dashboard-fixed.scss b/backoffice/src/styles/layout/_dashboard-fixed.scss new file mode 100644 index 0000000..c285d60 --- /dev/null +++ b/backoffice/src/styles/layout/_dashboard-fixed.scss @@ -0,0 +1,24 @@ +.sb-nav-fixed { + .sb-topnav { + @extend .fixed-top; + z-index: $zindex-topnav; + } + #layoutSidenav { + #layoutSidenav_nav { + @extend .fixed-top; + width: $sidenav-base-width; + height: 100vh; + z-index: $zindex-sidenav; + .sb-sidenav { + padding-top: $topnav-base-height; + .sb-sidenav-menu { + overflow-y: auto; + } + } + } + #layoutSidenav_content { + padding-left: $sidenav-base-width; + margin-top: $topnav-base-height; + } + } +} diff --git a/backoffice/src/styles/layout/_error.scss b/backoffice/src/styles/layout/_error.scss new file mode 100644 index 0000000..aa04b9a --- /dev/null +++ b/backoffice/src/styles/layout/_error.scss @@ -0,0 +1,16 @@ +#layoutError { + display: flex; + flex-direction: column; + min-height: 100vh; + #layoutError_content { + min-width: 0; + flex-grow: 1; + } + #layoutError_footer { + min-width: 0; + } +} + +.img-error { + max-width: 20rem; +} diff --git a/backoffice/src/styles/maker_book.scss b/backoffice/src/styles/maker_book.scss new file mode 100644 index 0000000..329bc08 --- /dev/null +++ b/backoffice/src/styles/maker_book.scss @@ -0,0 +1,78 @@ +/* colors.scss */ + +$Red1: #FF164D; +$Red2: #EE4F4F; +$Orange1: #F0BF00; +$Orange2: #F0B446; +$Blue1: #007EFF; +$Blue2: #467EB7; +$Green1: #007700; +$Green2: #52A65E; +$Purple1: #730491; +$Purple2: #733E91; +$Black1: #000000; +$Black2: #292927; + +$background-color-login: #F8F8F8; +$background-color-student: #F1F1F1; + +/* Você pode adicionar mais variáveis de cor conforme necessário */ + +.lw-container { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; /* Preencher a altura da tela */ + background-color: $background-color-login; + font-family: 'Inter'; +} + +.lw-form { + padding: (10px 40px 40px 40px); + border-radius: 8px; /* Canto levemente arredondado */ + box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1); /* Sombreamento */ + background-color: #ffffff; /* Fundo branco */ + width: auto; /* Largura do form */ + text-align: center; +} + +.btn-primary-lw { + width: 100%; /* Largura total do botão */ + padding: 8px; + background-color: $Green2; /* Cor verde */ + color: white; /* Cor do texto no botão */ + border: none; /* Sem borda */ + border-radius: 12px; /* Canto levemente arredondado */ + cursor: pointer; /* Cursor de pointer ao passar sobre o botão */ + font-size: 14px; + font-weight: bold; +} + +.btn-primary-lw:hover { + background-color: $Green1; /* Cor verde escura ao passar o mouse */ +} + +.btn-secondary-lw { + width: 100%; /* Largura total do botão */ + padding: 8px; + background-color: $Black2; /* Cor verde */ + color: white; /* Cor do texto no botão */ + border: none; /* Sem borda */ + border-radius: 12px; /* Canto levemente arredondado */ + cursor: pointer; /* Cursor de pointer ao passar sobre o botão */ + font-size: 14px; + font-weight: bold; +} + +.btn-secondary-lw:hover { + background-color: $Black1; /* Cor verde escura ao passar o mouse */ +} + +input { + width: 100%; /* Largura total do campo de entrada */ + padding: 8px; + border: 1px solid #E5E5E5; /* Cor da borda */ + border-radius: 12px; /* Canto levemente arredondado */ + background: #F8F8F8; + text-align: center; +} \ No newline at end of file diff --git a/backoffice/src/styles/navigation/_nav.scss b/backoffice/src/styles/navigation/_nav.scss new file mode 100644 index 0000000..88066d5 --- /dev/null +++ b/backoffice/src/styles/navigation/_nav.scss @@ -0,0 +1,7 @@ +// Add styling for icons used within nav links +.nav, +.sb-sidenav-menu { + .nav-link .sb-nav-link-icon { + margin-right: 0.5rem; + } +} diff --git a/backoffice/src/styles/navigation/_topnav.scss b/backoffice/src/styles/navigation/_topnav.scss new file mode 100644 index 0000000..e98702f --- /dev/null +++ b/backoffice/src/styles/navigation/_topnav.scss @@ -0,0 +1,23 @@ +// Base styling for the topnav + +.sb-topnav { + padding-left: 0; + height: $topnav-base-height; + z-index: $zindex-topnav; + .navbar-brand { + width: $sidenav-base-width; + padding-left: $navbar-padding-x; + padding-right: $navbar-padding-x; + margin: 0; + } + &.navbar-dark { + #sidebarToggle { + color: $topnav-dark-toggler-color; + } + } + &.navbar-light { + #sidebarToggle { + color: $topnav-light-toggler-color; + } + } +} diff --git a/backoffice/src/styles/navigation/sidenav/_sidenav-dark.scss b/backoffice/src/styles/navigation/sidenav/_sidenav-dark.scss new file mode 100644 index 0000000..ebdb8c5 --- /dev/null +++ b/backoffice/src/styles/navigation/sidenav/_sidenav-dark.scss @@ -0,0 +1,33 @@ +// Dark theme for sidenav +// Append .sb-sidenav-dark to .sb-sidenav to use + +.sb-sidenav-dark { + background-color: $sidenav-dark-bg; + color: $sidenav-dark-color; + .sb-sidenav-menu { + .sb-sidenav-menu-heading { + color: $sidenav-dark-heading-color; + } + .nav-link { + color: $sidenav-dark-link-color; + .sb-nav-link-icon { + color: $sidenav-dark-icon-color; + } + .sb-sidenav-collapse-arrow { + color: $sidenav-dark-icon-color; + } + &:hover { + color: $sidenav-dark-link-active-color; + } + &.active { + color: $sidenav-dark-link-active-color; + .sb-nav-link-icon { + color: $sidenav-dark-link-active-color; + } + } + } + } + .sb-sidenav-footer { + background-color: $sidenav-dark-footer-bg; + } +} diff --git a/backoffice/src/styles/navigation/sidenav/_sidenav-light.scss b/backoffice/src/styles/navigation/sidenav/_sidenav-light.scss new file mode 100644 index 0000000..019ce34 --- /dev/null +++ b/backoffice/src/styles/navigation/sidenav/_sidenav-light.scss @@ -0,0 +1,33 @@ +// Light theme for sidenav +// Append .sb-sidenav-light to .sb-sidenav to use + +.sb-sidenav-light { + background-color: $sidenav-light-bg; + color: $sidenav-light-color; + .sb-sidenav-menu { + .sb-sidenav-menu-heading { + color: $sidenav-light-heading-color; + } + .nav-link { + color: $sidenav-light-link-color; + .sb-nav-link-icon { + color: $sidenav-light-icon-color; + } + .sb-sidenav-collapse-arrow { + color: $sidenav-light-icon-color; + } + &:hover { + color: $sidenav-light-link-active-color; + } + &.active { + color: $sidenav-light-link-active-color; + .sb-nav-link-icon { + color: $sidenav-light-link-active-color; + } + } + } + } + .sb-sidenav-footer { + background-color: $sidenav-light-footer-bg; + } +} diff --git a/backoffice/src/styles/navigation/sidenav/_sidenav.scss b/backoffice/src/styles/navigation/sidenav/_sidenav.scss new file mode 100644 index 0000000..6d3c5bc --- /dev/null +++ b/backoffice/src/styles/navigation/sidenav/_sidenav.scss @@ -0,0 +1,48 @@ +// Base styling for the sidenav + +.sb-sidenav { + display: flex; + flex-direction: column; + height: 100%; + flex-wrap: nowrap; + .sb-sidenav-menu { + flex-grow: 1; + .nav { + flex-direction: column; + flex-wrap: nowrap; + .sb-sidenav-menu-heading { + padding: 1.75rem 1rem 0.75rem; + font-size: 0.75rem; + font-weight: bold; + text-transform: uppercase; + } + .nav-link { + display: flex; + align-items: center; + padding-top: 0.75rem; + padding-bottom: 0.75rem; + position: relative; + .sb-nav-link-icon { + font-size: 0.9rem; + } + .sb-sidenav-collapse-arrow { + display: inline-block; + margin-left: auto; + transition: transform 0.15s ease; + } + &.collapsed { + .sb-sidenav-collapse-arrow { + transform: rotate(-90deg); + } + } + } + .sb-sidenav-menu-nested { + margin-left: 1.5rem; + flex-direction: column; + } + } + } + .sb-sidenav-footer { + padding: 0.75rem; + } +} diff --git a/backoffice/src/styles/styles.scss b/backoffice/src/styles/styles.scss new file mode 100644 index 0000000..b0ec872 --- /dev/null +++ b/backoffice/src/styles/styles.scss @@ -0,0 +1,21 @@ +// Import Custom Variables +@import "variables.scss"; + +// Import Bootstrap +@import "bootstrap/scss/bootstrap.scss"; + +// Import Custom SCSS +@import "global.scss"; + +// Layout +@import "layout/authentication.scss"; +@import "layout/dashboard-default.scss"; +@import "layout/dashboard-fixed.scss"; +@import "layout/error.scss"; + +// Navigation +@import "navigation/nav.scss"; +@import "navigation/topnav.scss"; +@import "navigation/sidenav/sidenav.scss"; +@import "navigation/sidenav/sidenav-dark.scss"; +@import "navigation/sidenav/sidenav-light.scss"; diff --git a/backoffice/src/styles/variables/_navigation.scss b/backoffice/src/styles/variables/_navigation.scss new file mode 100644 index 0000000..552f969 --- /dev/null +++ b/backoffice/src/styles/variables/_navigation.scss @@ -0,0 +1,27 @@ +// Z index variables +$zindex-sidenav: 1080 !default; +$zindex-topnav: 1090 !default; + +// Color variables for the sidenav + +// -- Sidenav Dark +$sidenav-dark-bg: $gray-900; +$sidenav-dark-color: fade-out($white, 0.5); +$sidenav-dark-heading-color: fade-out($white, 0.75); +$sidenav-dark-link-color: fade-out($white, 0.5); +$sidenav-dark-link-active-color: $white; +$sidenav-dark-icon-color: fade-out($white, 0.75); +$sidenav-dark-footer-bg: $gray-800; + +// -- Sidenav Light +$sidenav-light-bg: $gray-100; +$sidenav-light-color: $gray-900; +$sidenav-light-heading-color: $gray-500; +$sidenav-light-link-color: $sidenav-light-color; +$sidenav-light-link-active-color: $primary; +$sidenav-light-icon-color: $gray-500; +$sidenav-light-footer-bg: $gray-200; + +// Color variables for the topnav +$topnav-dark-toggler-color: fade-out($white, 0.5); +$topnav-light-toggler-color: $gray-900; diff --git a/backoffice/src/styles/variables/_spacing.scss b/backoffice/src/styles/variables/_spacing.scss new file mode 100644 index 0000000..602085a --- /dev/null +++ b/backoffice/src/styles/variables/_spacing.scss @@ -0,0 +1,7 @@ +// Adjust column spacing for symmetry +$spacer: 1rem; +$grid-gutter-width: $spacer * 1.5; + +// Spacing variables for navigation +$topnav-base-height: 56px; +$sidenav-base-width: 225px; diff --git a/backoffice/src/test.ts b/backoffice/src/test.ts new file mode 100644 index 0000000..11cc15d --- /dev/null +++ b/backoffice/src/test.ts @@ -0,0 +1,17 @@ +// This file is required by karma.conf.js and loads recursively all the .spec and framework files + +import { getTestBed } from '@angular/core/testing'; +import { + BrowserDynamicTestingModule, + platformBrowserDynamicTesting, +} from '@angular/platform-browser-dynamic/testing'; +import 'zone.js/dist/zone-testing'; + +declare const require: any; + +// 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/backoffice/src/testing/mocks/auth.ts b/backoffice/src/testing/mocks/auth.ts new file mode 100644 index 0000000..7b973fd --- /dev/null +++ b/backoffice/src/testing/mocks/auth.ts @@ -0,0 +1,9 @@ +import { User } from '@modules/auth/models'; +export { User }; + +export class MockUser implements User { + id = 'TEST_ID'; + firstName = 'TEST_FIRST_NAME'; + lastName = 'TEST_LAST_NAME'; + email = 'TEST_EMAIL'; +} diff --git a/backoffice/src/testing/mocks/index.ts b/backoffice/src/testing/mocks/index.ts new file mode 100644 index 0000000..baccfa7 --- /dev/null +++ b/backoffice/src/testing/mocks/index.ts @@ -0,0 +1,2 @@ +export * from './auth'; +export * from './navigation'; diff --git a/backoffice/src/testing/mocks/navigation.ts b/backoffice/src/testing/mocks/navigation.ts new file mode 100644 index 0000000..faf7081 --- /dev/null +++ b/backoffice/src/testing/mocks/navigation.ts @@ -0,0 +1,7 @@ +import { SideNavItem } from '@modules/navigation/models'; +export { SideNavItem }; + +export class MockSideNavItem implements SideNavItem { + text = 'TEST'; + link = 'TEST'; +} diff --git a/backoffice/src/testing/stubs/angular.ts b/backoffice/src/testing/stubs/angular.ts new file mode 100644 index 0000000..4e24b50 --- /dev/null +++ b/backoffice/src/testing/stubs/angular.ts @@ -0,0 +1,30 @@ +// https://angular.io/guide/testing#activatedroutestub + +import { convertToParamMap, ParamMap, Params } from '@angular/router'; +import { BehaviorSubject, ReplaySubject } from 'rxjs'; + +/** + * An ActivateRoute test double with a `paramMap` observable. + * Use the `setParamMap()` method to add the next `paramMap` value. + */ +export class ActivatedRouteStub { + // Use a ReplaySubject to share previous values with subscribers + // and pump new values into the `paramMap` observable + private subject = new ReplaySubject(); + + constructor(initialParams: Params) { + this.setParamMap(initialParams); + } + + /** The mock paramMap observable */ + readonly paramMap = this.subject.asObservable(); + + /** Set the paramMap observables's next value */ + setParamMap(params: Params) { + this.subject.next(convertToParamMap(params)); + } +} + +export class RouterStub { + events = new BehaviorSubject({} as Event); +} diff --git a/backoffice/src/testing/stubs/auth.ts b/backoffice/src/testing/stubs/auth.ts new file mode 100644 index 0000000..bd777cd --- /dev/null +++ b/backoffice/src/testing/stubs/auth.ts @@ -0,0 +1,12 @@ +import { UserService } from '@modules/auth/services'; +import { MockUser, User } from '@testing/mocks'; +import { Observable, of } from 'rxjs'; + +const mockUser = new MockUser(); + +export class UserServiceStub implements UserService { + set user(user: User) {} + get user$(): Observable { + return of(mockUser); + } +} diff --git a/backoffice/src/testing/stubs/index.ts b/backoffice/src/testing/stubs/index.ts new file mode 100644 index 0000000..bfb130d --- /dev/null +++ b/backoffice/src/testing/stubs/index.ts @@ -0,0 +1,3 @@ +export * from './angular'; +export * from './auth'; +export * from './navigation'; diff --git a/backoffice/src/testing/stubs/navigation.ts b/backoffice/src/testing/stubs/navigation.ts new file mode 100644 index 0000000..26a5cb5 --- /dev/null +++ b/backoffice/src/testing/stubs/navigation.ts @@ -0,0 +1,10 @@ +import { SBRouteData } from '@modules/navigation/models'; +import { NavigationService } from '@modules/navigation/services'; +import { of } from 'rxjs'; + +export const NavigationServiceStub: Partial = { + sideNavVisible$: () => of(true), + toggleSideNav: (visibility?: boolean) => {}, + routeData$: () => of({} as SBRouteData), + currentURL$: () => of('TEST_URL'), +}; diff --git a/backoffice/src/typings/global.d.ts b/backoffice/src/typings/global.d.ts new file mode 100644 index 0000000..90665aa --- /dev/null +++ b/backoffice/src/typings/global.d.ts @@ -0,0 +1,5 @@ +interface Dictionary { + [key: string]: T; +} + +type UUID = string; \ No newline at end of file diff --git a/backoffice/tsconfig.app.json b/backoffice/tsconfig.app.json new file mode 100644 index 0000000..9470929 --- /dev/null +++ b/backoffice/tsconfig.app.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "outDir": "./out-tsc/app", + "types": [ + ] + }, + "exclude": [ + "src/test.ts", + "src/**/*.spec.ts" + ], + "extends": "./tsconfig.json", + "files": [ + "src/main.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.d.ts" + ] +} \ No newline at end of file diff --git a/backoffice/tsconfig.json b/backoffice/tsconfig.json new file mode 100644 index 0000000..6d67733 --- /dev/null +++ b/backoffice/tsconfig.json @@ -0,0 +1,48 @@ +{ + "angularCompilerOptions": { + "enableIvy": false, + "fullTemplateTypeCheck": true, + "preserveWhitespaces": false, + "strictInjectionParameters": true + }, + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "src", + "declaration": false, + "downlevelIteration": true, + "emitDecoratorMetadata": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "importHelpers": true, + "lib": [ + "es2018", + "dom" + ], + "module": "esnext", + "moduleResolution": "node", + "noImplicitAny": true, + "outDir": "./dist/out-tsc", + "paths": { + "@app/*": [ + "app/*" + ], + "@common/*": [ + "modules/app-common/*" + ], + "@modules/*": [ + "modules/*" + ], + "@testing/*": [ + "testing/*" + ] + }, + "resolveJsonModule": true, + "sourceMap": true, + "strict": true, + "target": "es2015", + "typeRoots": [ + "node_modules/@types", + "src/typings" + ] + } +} \ No newline at end of file diff --git a/backoffice/tsconfig.spec.json b/backoffice/tsconfig.spec.json new file mode 100644 index 0000000..d44af88 --- /dev/null +++ b/backoffice/tsconfig.spec.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "outDir": "./out-tsc/spec", + "types": [ + "jasmine", + "node" + ] + }, + "extends": "./tsconfig.json", + "files": [ + "src/test.ts", + "src/polyfills.ts" + ], + "include": [ + "src/**/*.spec.ts", + "src/**/*.d.ts" + ] +} \ No newline at end of file diff --git a/backoffice/tslint.json b/backoffice/tslint.json new file mode 100644 index 0000000..0bcf68d --- /dev/null +++ b/backoffice/tslint.json @@ -0,0 +1,116 @@ +{ + "extends": [ + "tslint:recommended", + "tslint-plugin-prettier" + ], + "rules": { + "array-type": false, + "arrow-parens": false, + "component-class-suffix": true, + "component-selector": [ + true, + "element", + [ + "app", + "sb" + ], + "kebab-case" + ], + "contextual-lifecycle": true, + "deprecation": { + "severity": "warning" + }, + "directive-class-suffix": true, + "directive-selector": [ + true, + "attribute", + [ + "app", + "sb" + ], + "camelCase" + ], + "import-blacklist": [ + true, + "rxjs/Rx" + ], + "interface-name": false, + "max-classes-per-file": false, + "max-line-length": [ + true, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-angle-bracket-type-assertion": true, + "no-conflicting-lifecycle": true, + "no-consecutive-blank-lines": false, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-duplicate-imports": true, + "no-empty": false, + "no-host-metadata-property": true, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-input-rename": true, + "no-inputs-metadata-property": true, + "no-non-null-assertion": true, + "no-output-native": true, + "no-output-on-prefix": true, + "no-output-rename": true, + "no-outputs-metadata-property": true, + "no-redundant-jsdoc": true, + "no-switch-case-fall-through": true, + "no-var-requires": false, + "object-literal-key-quotes": [ + true, + "as-needed" + ], + "object-literal-sort-keys": false, + "ordered-imports": [ + true, + { + "grouped-imports": true + } + ], + "prettier": true, + "quotemark": [ + true, + "single" + ], + "template-banana-in-box": true, + "template-no-negated-async": true, + "trailing-comma": false, + "use-lifecycle-interface": true, + "use-pipe-transform-interface": true, + "variable-name": { + "options": [ + "ban-keywords", + "check-format", + "allow-leading-underscore", + "allow-pascal-case" + ] + } + }, + "rulesDirectory": [ + "codelyzer" + ] +} \ No newline at end of file diff --git a/backoffice/version b/backoffice/version new file mode 100644 index 0000000..589268e --- /dev/null +++ b/backoffice/version @@ -0,0 +1 @@ +1.3.0 \ No newline at end of file diff --git a/books_viewer/.gitignore b/books_viewer/.gitignore new file mode 100644 index 0000000..29a3a50 --- /dev/null +++ b/books_viewer/.gitignore @@ -0,0 +1,43 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/books_viewer/.metadata b/books_viewer/.metadata new file mode 100644 index 0000000..6eb54a1 --- /dev/null +++ b/books_viewer/.metadata @@ -0,0 +1,45 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "761747bfc538b5af34aa0d3fac380f1bc331ec49" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + - platform: android + create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + - platform: ios + create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + - platform: linux + create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + - platform: macos + create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + - platform: web + create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + - platform: windows + create_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + base_revision: 761747bfc538b5af34aa0d3fac380f1bc331ec49 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/books_viewer/README.md b/books_viewer/README.md new file mode 100644 index 0000000..0bd3b98 --- /dev/null +++ b/books_viewer/README.md @@ -0,0 +1,16 @@ +# MakerBook + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/books_viewer/analysis_options.yaml b/books_viewer/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/books_viewer/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/books_viewer/android/.gitignore b/books_viewer/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/books_viewer/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/books_viewer/android/app/build.gradle b/books_viewer/android/app/build.gradle new file mode 100644 index 0000000..aefff25 --- /dev/null +++ b/books_viewer/android/app/build.gradle @@ -0,0 +1,79 @@ +plugins { + id "com.android.application" + id "kotlin-android" + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id "dev.flutter.flutter-gradle-plugin" +} + +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file("key.properties") +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + +def localProperties = new Properties() +def localPropertiesFile = rootProject.file("local.properties") +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader("UTF-8") { reader -> + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty("flutter.versionCode") +if (flutterVersionCode == null) { + flutterVersionCode = "1" +} + +def flutterVersionName = localProperties.getProperty("flutter.versionName") +if (flutterVersionName == null) { + flutterVersionName = "1.0" +} + +android { + namespace = "com.myrobot.MakerBook" + compileSdk = 34 // flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.myrobot.MakerBook" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. + minSdk = flutter.minSdkVersion + targetSdk = 34 //flutter.targetSdkVersion + versionCode = flutterVersionCode.toInteger() + versionName = flutterVersionName + } + + signingConfigs { + release { + storeFile file("${rootDir}/${keystoreProperties['storeFile']}") + storePassword keystoreProperties['storePassword'] + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + } + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.release + minifyEnabled true + shrinkResources true + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + + + +} + +flutter { + source = "../.." +} diff --git a/books_viewer/android/app/src/debug/AndroidManifest.xml b/books_viewer/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/books_viewer/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/books_viewer/android/app/src/main/AndroidManifest.xml b/books_viewer/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..73524fa --- /dev/null +++ b/books_viewer/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/books_viewer/android/app/src/main/kotlin/com/example/books_viewer/MainActivity.kt b/books_viewer/android/app/src/main/kotlin/com/example/books_viewer/MainActivity.kt new file mode 100644 index 0000000..dc535fa --- /dev/null +++ b/books_viewer/android/app/src/main/kotlin/com/example/books_viewer/MainActivity.kt @@ -0,0 +1,14 @@ +package com.myrobot.MakerBook + +import android.os.Bundle +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + window.setFlags( + android.view.WindowManager.LayoutParams.FLAG_SECURE, + android.view.WindowManager.LayoutParams.FLAG_SECURE + ) + } +} \ No newline at end of file diff --git a/books_viewer/android/app/src/main/res/drawable-v21/launch_background.xml b/books_viewer/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/books_viewer/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/books_viewer/android/app/src/main/res/drawable/launch_background.xml b/books_viewer/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/books_viewer/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/books_viewer/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/books_viewer/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b5f1a06d3639ef8c938607cd487f7e49846bc9d6 GIT binary patch literal 5872 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 literal 0 HcmV?d00001 diff --git a/books_viewer/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/books_viewer/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..27adbe41ab58bc9391151547160b597419fea0e2 GIT binary patch literal 8260 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%0AbIi`p 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 HZW8oA)#?A5 literal 0 HcmV?d00001 diff --git a/books_viewer/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/books_viewer/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..3b8796c08677866f701dbd81cac959daa1e72e5d GIT binary patch literal 17152 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 aXVgyqx~9CoS{Qh;1%s!npUXO@geCywBeG=x literal 0 HcmV?d00001 diff --git a/books_viewer/android/app/src/main/res/values-night/styles.xml b/books_viewer/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/books_viewer/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/books_viewer/android/app/src/main/res/values/styles.xml b/books_viewer/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/books_viewer/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/books_viewer/android/app/src/main/res/xml/network_security_config.xml b/books_viewer/android/app/src/main/res/xml/network_security_config.xml new file mode 100644 index 0000000..dca93c0 --- /dev/null +++ b/books_viewer/android/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/books_viewer/android/app/src/profile/AndroidManifest.xml b/books_viewer/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/books_viewer/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/books_viewer/android/build.gradle b/books_viewer/android/build.gradle new file mode 100644 index 0000000..d2ffbff --- /dev/null +++ b/books_viewer/android/build.gradle @@ -0,0 +1,18 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = "../build" +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/books_viewer/android/gradle.properties b/books_viewer/android/gradle.properties new file mode 100644 index 0000000..3b5b324 --- /dev/null +++ b/books_viewer/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true diff --git a/books_viewer/android/gradle/wrapper/gradle-wrapper.properties b/books_viewer/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e1ca574 --- /dev/null +++ b/books_viewer/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip diff --git a/books_viewer/android/settings.gradle b/books_viewer/android/settings.gradle new file mode 100644 index 0000000..536165d --- /dev/null +++ b/books_viewer/android/settings.gradle @@ -0,0 +1,25 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return flutterSdkPath + }() + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "1.7.10" apply false +} + +include ":app" diff --git a/books_viewer/assets/images/background.png b/books_viewer/assets/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0f566bc39372b8c133c29a5fcde9c14b2d73d2 GIT binary patch literal 752181 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 z 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

%kKyck4rU@@d!BUpSt2Up2%J}Kg2dA{et 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%0A8`|AASxQb_=1aDy3T|BheBGV=a+o2TV~& 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%0DVcdhZpUgPYyVQPs_`NC7@7?0@g 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]%McnSfJ#b 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 literal 0 HcmV?d00001 diff --git a/books_viewer/assets/images/icon.png b/books_viewer/assets/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1df3e552e92248d5b3648d6048ebc8e54dd9e020 GIT binary patch literal 35074 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/books_viewer/macos/Runner/Configs/AppInfo.xcconfig b/books_viewer/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..241c152 --- /dev/null +++ b/books_viewer/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = MakerBook + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.booksViewer + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2024 com.example. All rights reserved. diff --git a/books_viewer/macos/Runner/Configs/Debug.xcconfig b/books_viewer/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/books_viewer/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/books_viewer/macos/Runner/Configs/Release.xcconfig b/books_viewer/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/books_viewer/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/books_viewer/macos/Runner/Configs/Warnings.xcconfig b/books_viewer/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/books_viewer/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/books_viewer/macos/Runner/DebugProfile.entitlements b/books_viewer/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/books_viewer/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/books_viewer/macos/Runner/Info.plist b/books_viewer/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/books_viewer/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/books_viewer/macos/Runner/MainFlutterWindow.swift b/books_viewer/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/books_viewer/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/books_viewer/macos/Runner/Release.entitlements b/books_viewer/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/books_viewer/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/books_viewer/macos/RunnerTests/RunnerTests.swift b/books_viewer/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..61f3bd1 --- /dev/null +++ b/books_viewer/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Cocoa +import FlutterMacOS +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/books_viewer/pubspec.yaml b/books_viewer/pubspec.yaml new file mode 100644 index 0000000..1cbd2e0 --- /dev/null +++ b/books_viewer/pubspec.yaml @@ -0,0 +1,124 @@ +name: MakerBook +description: "Leitor de livros" +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.2+10 + +environment: + sdk: '>=3.4.3 <4.0.0' + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + flutter_pdfview: ^1.0.4 + http: ^1.4.0 + flutter_windowmanager: ^0.2.0 + qr_code_scanner: ^1.0.0 + vocsy_epub_viewer: ^3.0.0 + encrypt: ^5.0.0 + epub_view: ^3.2.0 + webview_flutter: ^3.0.4 + flutter_svg: ^1.1.6 + flutter_launcher_icons: ^0.11.0 + google_fonts: ^4.0.4 + audioplayers: ^5.2.1 + tutorial_coach_mark: ^1.3.2 + shared_preferences: ^2.2.0 + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.6 + path_provider: ^2.1.3 + +flutter_icons: + android: true + ios: true + remove_alpha_ios: true + image_path: "assets/images/icon.png" # Caminho da sua imagem + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^3.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +dependency_overrides: + tutorial_coach_mark: 1.2.4 + +# The following section is specific to Flutter packages. +flutter: + assets: + - assets/images/background.png + - assets/images/robot.png + - assets/images/hand.png + - assets/images/icon.png + - assets/images/zoom.png + - assets/images/lamp.png + - assets/images/seta.png + - assets/sounds/open_book.mp3 + - assets/sample.epub + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/books_viewer/test/widget_test.dart b/books_viewer/test/widget_test.dart new file mode 100644 index 0000000..296e15e --- /dev/null +++ b/books_viewer/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:MakerBook/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/books_viewer/web/favicon.png b/books_viewer/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/books_viewer/web/icons/Icon-192.png b/books_viewer/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/books_viewer/web/icons/Icon-512.png b/books_viewer/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/books_viewer/web/icons/Icon-maskable-192.png b/books_viewer/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/books_viewer/web/icons/Icon-maskable-512.png b/books_viewer/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/books_viewer/web/index.html b/books_viewer/web/index.html new file mode 100644 index 0000000..9023ab2 --- /dev/null +++ b/books_viewer/web/index.html @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + MakerBook + + + + + + diff --git a/books_viewer/web/manifest.json b/books_viewer/web/manifest.json new file mode 100644 index 0000000..f7fd926 --- /dev/null +++ b/books_viewer/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "MakerBook", + "short_name": "MakerBook", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/books_viewer/windows/.gitignore b/books_viewer/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/books_viewer/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/books_viewer/windows/CMakeLists.txt b/books_viewer/windows/CMakeLists.txt new file mode 100644 index 0000000..3a52091 --- /dev/null +++ b/books_viewer/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(MakerBook LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "MakerBook") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(VERSION 3.14...3.25) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/books_viewer/windows/flutter/CMakeLists.txt b/books_viewer/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..903f489 --- /dev/null +++ b/books_viewer/windows/flutter/CMakeLists.txt @@ -0,0 +1,109 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + ${FLUTTER_TARGET_PLATFORM} $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/books_viewer/windows/flutter/generated_plugin_registrant.cc b/books_viewer/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..09e8e2c --- /dev/null +++ b/books_viewer/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,14 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + AudioplayersWindowsPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("AudioplayersWindowsPlugin")); +} diff --git a/books_viewer/windows/flutter/generated_plugin_registrant.h b/books_viewer/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/books_viewer/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/books_viewer/windows/flutter/generated_plugins.cmake b/books_viewer/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..375535c --- /dev/null +++ b/books_viewer/windows/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + audioplayers_windows +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/books_viewer/windows/runner/CMakeLists.txt b/books_viewer/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..394917c --- /dev/null +++ b/books_viewer/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/books_viewer/windows/runner/Runner.rc b/books_viewer/windows/runner/Runner.rc new file mode 100644 index 0000000..4e0603c --- /dev/null +++ b/books_viewer/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "MakerBook" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "MakerBook" "\0" + VALUE "LegalCopyright", "Copyright (C) 2024 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "MakerBook.exe" "\0" + VALUE "ProductName", "MakerBook" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/books_viewer/windows/runner/flutter_window.cpp b/books_viewer/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..955ee30 --- /dev/null +++ b/books_viewer/windows/runner/flutter_window.cpp @@ -0,0 +1,71 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/books_viewer/windows/runner/flutter_window.h b/books_viewer/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/books_viewer/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/books_viewer/windows/runner/main.cpp b/books_viewer/windows/runner/main.cpp new file mode 100644 index 0000000..b5cdaa8 --- /dev/null +++ b/books_viewer/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"MakerBook", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/books_viewer/windows/runner/resource.h b/books_viewer/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/books_viewer/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/books_viewer/windows/runner/resources/app_icon.ico b/books_viewer/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c04e20caf6370ebb9253ad831cc31de4a9c965f6 GIT binary patch literal 33772 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 literal 0 HcmV?d00001 diff --git a/books_viewer/windows/runner/runner.exe.manifest b/books_viewer/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..a42ea76 --- /dev/null +++ b/books_viewer/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/books_viewer/windows/runner/utils.cpp b/books_viewer/windows/runner/utils.cpp new file mode 100644 index 0000000..3a0b465 --- /dev/null +++ b/books_viewer/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + unsigned int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + std::string utf8_string; + if (target_length == 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/books_viewer/windows/runner/utils.h b/books_viewer/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/books_viewer/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/books_viewer/windows/runner/win32_window.cpp b/books_viewer/windows/runner/win32_window.cpp new file mode 100644 index 0000000..60608d0 --- /dev/null +++ b/books_viewer/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + } + FreeLibrary(user32_module); +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registrar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/books_viewer/windows/runner/win32_window.h b/books_viewer/windows/runner/win32_window.h new file mode 100644 index 0000000..e901dde --- /dev/null +++ b/books_viewer/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates a win32 window with |title| that is positioned and sized using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_ diff --git a/lojas/google/Icone Maker Book 3-01.png b/lojas/google/Icone Maker Book 3-01.png new file mode 100644 index 0000000000000000000000000000000000000000..5c8ea10750de43f654cef00011e1943b6a3639a8 GIT binary patch literal 83172 zcmeEtWmj8W7j1BNcef%XxVsjY;tp-0c(I@f?pC0>zuGEUCkbFDSkT=PU~sw-lllcNIw04!xCIc)#{{_QI~02TRdxdF{Sy)9@iN``I# z02jl5A2?94q$dCXgDJ~N>w=a~Oi}!jKV1bVqoSfu<4sFdvP$FLj(d8_qso`xo{4F6 zw87Svr0jemIv7g%YNu)^WzP9;LT(gr=sNU69w)}0{Wk*ImZX#z(5_zscEZ^*|DJvR zvY!4WN0BX1iWV0Y5&r)#|F3L85PE?$f7t&{Er@*ln3@!8oNCV0B>7lEsrG+I+2g&t zFv@bPpk`dgoa&{S%I9o8;3`k_!bN>WiSge_Ynt&n_@%eD@5GjSx7q7nvsZI6RPR)1 z+y|7;aQ3BuYw|x*_FYJXJQHZz^pxJ=4rFQ`?OsenX(Nf6vm$H!N~cDRK@Luw54+KCC=t<8S#+Y{wi?+M=kt z|0H@>PB8Zf4i{0UIPy`^y7=Rfst`vI~c?{e=q6+9MmU;bsvOJ4Kxh_BwtKd ztm^xl5&MFvaRN*nrXK19UKYJAacj0JCjtro7n7ywGo8E{jW-`t8_zeQU8A&m9Ubi0QE9m9GHkd&)8zDTJ7%1- zPvb|q-xBuAW61&4^pQruVDFgu#nA4JqZUp{QGn=2_H{K1Aj1Wt$U&Y$JcXzl;-nIgWH>L0~O{6e&_R29f+TkZ-(D?r1Ee}*c9t8SfGF-HhVwCG&)OMiMsCCrR{(8V~ z!qiz`qyBhW{h0K1<=@>mv8HLJ|0S~&3b7BTD}oMwY`pVtz(FNYrBUaZ9WCkKS+S;N ze(qLCdoZ>Ti%~vOQPr;f-fVA^EHyC86Rf`(E-!8EXGXq#y}h+?4GhSMusB@lkUS>g zb8s)ay14n~-6@~+A1=7gW;#`-S+>a{4>avJU_Z8eJU4>(?h(YejjXm?hzTZhxd(T; z7D!cnmB&ba=;H=19Fop@ABIjO;V4)`SFv_$;T*{l5~i3K6J{$-53T-(wFYMX)W=%n zhcHtj%icmuhPfa)&t>zzkhcxs&k^z#U}K9fFjnp^9cVvV6QCjnVIbk);Ov*?6BzEyFO=?eHfb;q~JM*qpI_>(E<7Ny5&d~v%#)1?<)*jTZ+X0Q9Q?(r|K zS=|0(Z|Ch%_dL;2rgG9O3JthyuoK$ib5RQ}m%M$fIGT0qrtxpP&z*kU3k(-o6XV8# z!IHu8aGMK#-b1DZ;{#+dGP1L_1QPM@E%01~9f=c&5%AE;aA|WCe>a-e8zd2Yk%|cZ zFS9xEIUJOc^M4K5Dkk^#zHH!Fo#vHVTmIcfgrk!Meu!>afNINpva%_(1ePt|l>L15yZBg9E*Yw)A)v?g)3R`N|bGuQVYSKEI*Hf6)OWEA?N=#xlhzeyXQq(}1s-Vo0IXVzAs=?wj{D-Tu(r z@Mq3gSnF`mX3~qk-tLb`8U^YDY%vHAtNuZF5wNqMt%0x) zZ%KdI{F+5}v+TD!A|iZ`eDW&$Wyb_2P3dRVXI1~(OW17v`}L1H5}A2d1bu{3aY4Ln zAhj7+=8ykqaQcK?$Of@UakgPykjPi84<{f~NG-87j)Is1j{+L9F7rj>mZ}lvdUi0t z@Dk7h`YVa42|~=<6_Qe*w4uTd44HKN<+%3Ep!R?yP0S9x{px9jdovQ&-2f)-%?{FA z5Q9H$z3U00opgkwm6y(ra`)?;-?|l#L9vyyaKcNNBuFRYcl^iVj0qo@m(y?}ep&+3 zVENI09BJP4KtW#e)HZjvW7? zb^P_{1K6D3L5e0NiLBwL8fJ{W4w zQEp$FRx)7=HNm+ZFWf?7-gB`mjN<$~A+!7eJzO-xJHmtGW;ZF*;1iHg3jP3%M%)Sl z#@<*MxZ{R+^=>lPTWoUsC_MkxqoV~i50?7&-v_l~n*8D6jW-+Usv@55KrvA2WiyZP zuZs^nidQ5#5GmSH{t;@8qgaQL^@@Do%sDuJYF#LGi}~$26mqoi9B_NyB^k@|po=6N zKDIj!lgK7794{I$`zFHKh%}f|qFvzJPrrFrP!u6S`rcA?z#tgy2ABEIhW%S}?)xM$lm)kqt;v%plc$b>UA&p{LU}e| z8xA{{rh>zd`FcpuEh8KE8B&Ugju`Y+0U`Cy&(KQHGsgGS{ODBceHpCdk|s`rC8pOV zw~U}uI8)L?n}|7#O?8ixyLzx0!^E8^zNBb@7mDs_J~XnrA04vSwAFJ10pf-H1a~d1obEg-xB%P;Bdvq z<(LidZN5?Grf~!4j$~MJ|;|4p%@^J{q4-)A> z%-rAsS_{Rq#=Ss)KW_u>Tn&2JvGg%X0H?Jett@bcPdNtw^fv?$jZB|W-A{;z(FQa? z@E-hi7s4xH3yB7ZCh}r|>P?vX>w($-}b6yyKt*@FzaT~F-y!1rjab1 zyc8_l2fSoYP`x&u=bztKWK$3iAZu7~P!M>WPpkpXDQG^P*0d;kg9N^v&W&WIzJW~Y z&xY->IarM(g|aKN-(~i^Y>E_!&a?9f17=v%(@JOc5^QB(6ZEx`FotzN-Uy|FstgOG z)`E>900XX&-69cn#(GO`j0>$J4cz)8pB&3}o`ZuoReGDpa>p@|TN!{ZqdQ#)v)08PZr zV*Lzs^PfLXG^-Zfq-388T53{uvNCN(5>U%fD#ZRao@jT7W|CT z4gmMobO~MvzrJ!cVOrt+ROq~yv5xsu?FRu96A_*|AN1WvQcJoa&78v%B8H7_O0;*z zOvOe7E!%t*qQK?1+j4}8uPit#YgPmb5xm7xoyFP4j2KL{2WZsSMouvLPL(^Kbm+(= zsGe!yN={i=Qm=ZYRVp+Q`egh`fp^M3{rYxU!+l?pySZ|>(Hr6=8LDrV3y7C| zCSMJf@11MH3j3@tf%>-1N%TidrIoQrE;h)gW7tU0CkV3_YCTE(O8f8^t&|S ziZJfK3@3$R0WHV{{WMP?ohM6D)-@GFBFT;6?#&4)%x7d8j4)tTj-AtwOLGf3wbwE2 z%yCL(82$G}(IlZ40@ka0B?}G1#q&Uz#yJfhNh;~)Pa9q~+gM4FuH>OP@bv}pctKJb!$>dIIfQuw$ENU1j2bX81Io$P^iLiKy*Y9np zUN-@HBph&YK*Xxg8KHqA%D+&lCzyYXcutS2$rciMFYx!R+gxNH~jgP*bh-Fpm zB&Ah<_RBha=gTB;*89L4pX}V;I=(|dDH*|r4$~5fo!a>~RpuFcaPN>@W)T4w7>ngl zh*eo-QvYeW$c0tH6%ZA7KI7^xNJxzxR=^;7*@|#gs3#M!`>nm&1$)Oj6fHBhW^O~r z-96sJ*u8B)*>Vut7evdye)+r1;8zsF5Y(L$z5Lm=K<9ltQXPTC{$R?*r1kr6b;V8) zVa1ve9Z4c;K694zoj)}J5d;BEZPek?8Xf(eXj;Akvg5S~V&f2ZSxPnrZ1oZaQ9N2T zJf;t`9F-wGBIqm=RC^1?L8_ES4T;rzJBmn1BxvcbgV1hz1|}nRF>0J(YXeFS^BW95 z=$!7ub+mIg4b3aYs>?pN`U_``cgQ2M?rK`sZ^H}Sf7aEaxX?aPWW+n4PrDBaC3OUZ zgf#jI{z}qkmKxJbLMdR~w}d#3ONjqg3V3jT+wIs@zIzNkAx96V(1|gVt-pVR#*gRoA2%G}dq~JGgvL>;FiqWPC+l^qwjZ zSeFHapJx3L1BoGW-gfL5YD(?!;8}kqd=dUl>jm>0jy6C?0@~-%1`v>t3=G}7!S&uJ z2B9OIQIdv6R?$v&S>L*&sRjU;xQ(b@HbOLn*tEVCEO~m6!0nx8M&>Rb@^yhJHKxtg za^UgW1deos)+I&!b+*M*DE~3W>9!VXH^?VHJAK#UTRaP9o0hvzj7*(X?uHL-!+SUv z&(!b3*?pCR&v>-d|zDUffWJBPpNh6I!{re6O2&P2dR5;Xhuz)H2;9q3aAMo9al zIUNl~QZIvO{(~IpD>jP9P&Wr^%tmbyIS6U*UK@YM36Nu}{4qhj!bYs$7+&zU;wq_Z z?(96jMy|T;vU-afKWQf;PyQ*y+&!7VPD@*^Y@X50l{4Cdha1Vjv8m9_VxZ| z@ur~vg5Iy%Ib0|5h-RWIkIR0>aQ)y-AP7?oMlS9LQ@5Twc`!4m6ETH0^${FxXJnZl zgWDJ-tjEn_BI_b+_1Gnej8Odt+;RrbCeZg8N)-(Wub8zM9^WnL4N}1F1TlT1%D!u9h*Pec zwB67A5boho(f=wa6B=WO_=yN{7dagdBT}o)Vx^Uc+jVkIa0KMT62y`s|^wsr${%J#QDx>fg4x zuE~M=Ki_Ly55pC%t3eiAlbewZrpu1{CYK|;JT?zcmbt2^@BaU?o1f*Q`ZUjjWR?Br8Q)j zOEJLz-jNOsv2^1mP>y}420e$Cdf9DgfH4POY77`)r9V`vZdT@w{2 zob|*`mYd&g}V*Nebh?u2y!mqoE^`@U}iRX?eL{>(qz`lmwlg zv#F|=TkN!zb6ZBgi`ZDKzu5fIlNRw^rQB7(5h|)YaT~3(lP?4$MBkp59lx_n(;Sk{ zNCyQg7?(Kv_fn5=dZ`cJT+TUPlhWEl6+xq~m>Ns70Wh?0o-lwno(iqxH?oPt$W48a z3p*k8a@>OB(^r^aKpZOMM*QhG_@e%mcX#`AvYF2JnUF(CBDgX(cRTV`_V4@d-0a#b z&g|XD_uZzE3pf6K&+4JkZd%;)tQ-o$=ol3SWGIH2%tzSLFAA(8jrt@A{S2E{-J8<7 zw1FbZ7!=BpQGs9H=&1fGNHmX!QL<1?&CzbTfkjZ3d8+tWOVLtWu0!o*{|sBss7o@D zoF6RZ%#d(7V;8KSfZv64=WL9D;#s-R8NpyFx~b|D6YQ1X-|g&w6Kkm*VAgZ zWZ+mS)+40hmBdtGaUQ8E!flm!{fv#5j0UF%u_GMpDScuzjA4w~^1LVOd7&y^zW9J< zQwbank2V7i!nL|3^iV-+i-pk?N@)LXa@#mQq+yV~lS9Wr+L_=7;j$D~%5+D*ccl&` zVJe!jn@R|08G767sHI~fLp(mR*V*cyNiYl;6-wk(oAcsLD6SMf=cEO~AbW~owxNu4_Z=E`ppW>Hrr8-iPuewik!I~r$1kEizUOzfs zu5nUVRO;-pcW$9uh*Tpb_d&8N{FXp^)Ngka;aOBO7a=gDq8h)M1B;k?1ynN6 z>cAgphJ#>9P;*{3gzQos9-2J?c2@vfEwpipa7x z&pA9Tq)QKee|z>%^UuuW-nt3=ic$U%I`f=YpT62Ueyc2AO@dcm`Y2)rM! zqR`?uBYh;9vj}5!svYjfVsnk`y;3;gD+PIyE@LBeKff%klzhX;)xQo>Fy!!6f9m0- z&E4Bp^pu^7M2Jgjrt9Bnw>H1_y>r4qv>u2@jg51XX+Qh0*>!j=KXkuyULUOt@y_qM zI9J{Yx%pJ+=!anK_iGg>u^F%P1<(~XNVW9fABtui^Gx`605VW46yL8k>;w0Pn1!wv z>*R(y&uaMYdb-Z-FbT0HvkrH>rUo@&!I8*iDwI;LH9~UW2ivM{CzrCj9UYr5%E*(C zSB+#LcMHT6WzT1qvHK6hdYI<}CE3IZo8S8O#S{J#_KXr_7O|%J%q*2(dI}2{^$1H$ zT-<=M1k>m;EiuX8>g@%Y(^ zFOj&Z9p3m8n`~Rx3z^RC>QTNVW&!svMjd!g__~!$r2XcyRab?+w31e2*I2g3wAOPg zB9{~yh-A!{u8#)Myizb`e7abTsJOERrDXLCw0~qM7Ik@^ypbnjkE=>%csG*KiMak* z5*n56^c7VYM!lS1H)_+liRc+ON3g2eTY#(~6~q%w*&@@Z7_}9hVO&alyZ;-!+94@D zKAxV?aLG$emqPa7J)JPTCK}xpPQCInO!PMSa3scm&j6G=7Mq+9RFHl0I08vz*Hd$K zA18~Tmdscij3nf+QzN;19i3J7*t6t9r2b-c+s-@+P_Rfv0Rr;^vR-5FU^>vVk1jT~ zAIxsoi{Dbj?$lSK4EZ{@b#INnB+z=Gc}$2l(TF)qSNmk{t;s6w<)`T^-*ZYXfrG!v ztq5oHTSxSPV;rDSC#scbcyau#c?o9zBYe%P(WP4i=HdzO+eCegSS|<`@}SF5NNCi2 zdm+t`>*N64_@M1$uSE+Vej~INJMLG1Rl7 zrUa-WqM{{*?IahQG-FcKxdw^tzOi6P;R*9U7!NaeD7DAW0)HV^nuO$*w>9%O;i#7k z^q$awLx}Yg_hi8p7#7jGer8=g_JY(HH>9O6&Q#SI=C0Z8-sp%PRMgb1#a`!*YlJoq zdWSudWvl+zKX*g9LQYIKeh1~SL3U>045FOBRSfQAE^?`_6D=Wgqba+SGco(VmB8lG z;dsNsmD2jBRLWDi%C@wsur*)mkmIw+bfpMI7e>;n!XMX>g4V@nnA~2yChv>lx{uHj zf+ya4;PY8>A7zaUej^-<3(wsj{}hz_k8yEr3!+$}Jl#`L!(O`G@oMFpZ-pw2cbI4< zX{h^B=}QBiaLu}y;lL}cRd2;`3e6q$zXJE=pKj7)|D&~w^C-NvFxDuR!IZ2P)a!&$ zF7HN|g?1^jlJE>LH+2`!eAFHQBlHi@nhoYpo>sC*eH*Jb1uz5%VupoTw-g}Zj)U41O!K{XSnmXBL+hVRVI5a%mujxvFB5I&Y8iOpg}h;F~uACdPq za1(6hGJPo5{Qj>4O9xfh_ed>0d`>+at#t2i*$vq=ewL}v9S zmLA24dC$3728;^p5wiz{qo{R?Mv}n-Xvypw)6!W{bI#UU&ysJg2auiTvvc~GDdLl$ zE8Bs6>A@#Qloyd#i8i5RLnWa|wb*Z!9!5dhJCqX$8zq93&oaieMVwmhAkmsCqk-(` zaamWQ1lGUjoT^bF3kn^5jf2@fIdiD*Fm@PT{MgCS66UyxvC8dK%*oJD5j{K*r6>UJ zF?|i7Ilojtou<3tFo(!}c%A(|u`IGQFW|ujPuw+V9kiV+r1tAW`DSL~(sUz1F~^9x z^2;6#n+;pG9!hqv(b`*dEFf2-Yx+wty zO-6GVs>HxN7w$hN<|Z$8w4Z(P41LE-&Xaz#yvvr8O>DQ8w0!vEJgDrzmO=U_nFMA# zk+h5^2mCFY4T{G8kkrK9?XvCGR`#GZp`)qFiln0P3gL?Z^@ekVtmBpw#+upq`jSC{ z-_TL=4Jkol%5a5`jX-O(+XXf{9aMfO*~ zqm|z)_1yHt+C=M`R?xyD=rpPaQMxM=rGlB$FGi3M4;vr#h;X^dE`Rgj!&fM~>T8X~ z?mta9+&bKEp8i8DNqnh5Ddc!Kv+ywwnqO30c(YOLlSr&=!Bp>AUdwsa-qjN9l^Q1z z4w?qOF&bg%bU(NcBEoIp+3$U9uEiqUZ|aOJ4``+J-zr>QzjSE#=s*|uVa?>PiK-aM zz&minBm;Uo@uojBisE#>i+i!EX~aT98h)qxA-}Sf3S)j2O=q$xsUbzL6WZUBBZKha zq!pm7Avs(kF)%3_K?gUAA#g#Yg;t^t1D!yi?ki)9%(N0S1xD)FEzJ>-JY7dC(aM9< zRI*RkZDIu@Jdm4Ci#d|9$#PaMF5#DD+*j<1(}w!Gkd-}g^}B#*Lg{P{uz zv9N_0hrHlz&Yvi#6PQ<>pI?H)6cD9y8GEGIo|7-gA>zNgovA*!>_t^VTmpnJBj8h* zvixvS?ro?Q)%>c9Yv-t|Ns*1OvUh|QCOuV=CBP((+j`dOkJntjm=9+c_) z7eu0k#DFC}PRst~h_Cp)e_=9d@|`*XH@d{5!DrH5%7ZQjF4Hd*K zQYPiXUobitq>>zkj^~Dy*oIs`Aib@@KG;I{PDCl}=K(=HTBF~HF;=Le7sZ5iePNn} zMm6ACBrd!bI8~&)ac~+(jWAmAkQQTpFA+xbnyCn1CA#sG+;sVa0zAC5Y0uT6bNTlO zb0TJ_J&?@dXNXjfDZsBVUodNW-0SIY{dJMxb@ z^B`q%#z!l1wB(erC0<$v;%(W+-VSI^@Fo^J-?1dH9lk^>bsQ<_`A&A+DL7*Ew{M$b zFROZ1J6jN1${dc)i72f2{u&FzHv_suV64oqj2~WG5u|D%8f<17Oj?BD8L?b@>-ESbgF_b+8f?lsE4@C+w5=umG1{a8|rl&OHl!XpS(mK4D~GF zBPp9|=wwf`pg#FR=N~I2jz@^;3SfOWOsp3CH+g5nV~=d_=rNOu#d~z zKJEW}Ej@N@W28diULCbjLR!&PDT}n^>Z~2_9OUE61ba*&L4B(Ob{>xBQ9|O>y~q3# zaQ@LPtH@ zkAI8qq$8OaMWkg5wmVtqvA>DF)Z>Fh7>MVQIm5;~kn4WPBAL)!$9(J|e)A5oav8l`Ki)AOTFq_o~SYt}epwQ(cwHB|t%HJcp)A zFb!i3i8WO=W5%f=dy;5>`%Yhv)cnhrh*Y|5ZBqr{+~=MX#_A-CZ2CXfLi+t#gNgNh z>F(v}7YyEe8oyyLr70Yy$NdluPl2bh^Ii??&^}NObYHOslC>sTTSvzP=0c9~P$b{7 zaeT^BP8tX+`(disz2;`~y7qndIvBxx7ufwMBAL-EO?v+9dA`3xfLkiEcGY||d29La zkm*0FXTLf3i*5zxlmqPy>SNcP&uPi#KBVzH1!%%`uK;`lg7`$BIuz4osFQWwMec*D z$M4)xD^JKx><~y5(~eEtiy!T$wz4&Gy8@9u*;XBANt=^&L@B#7>WmpZ`}qQ$^oCb6 z$7ctF@{+0Ch{zbP|Xn=a6vsW|G_=kA_CU}$`0K+U#p70 zV*1iUL9IuPMe&ECMoQBd9njmZVXl*aTU2*HejGmX8q8I85rh^o{T+Za>uK!SV zOylHjUQ3*bZ2p6CDHO zTuK6mo$J?!d=Rr9`Z#mZ7W%=!@2YF%Qp=%<2Or4MP@1j;LZ}H2E-8uN-}w9CLJrg2 z?oR|MWa+Xg7kVEO_m)q%Ae5U5Tas>FoYm-sKV<})D?7ls%P_@$BLmvz&EH^oY)H;% zm$h+&$GT#9$PMg%{CS%HF_Q|w1usMV)z=K4jjcFbB10{BSgoox65^z05#iN6c7*u) zSQMam=HP9acH$LKp`l>IU0=`fo8*h~!qpIKrkd+gUG0tAjDf?xY)5tDK1x^AJ2_@ucXT-FHB=#t%~q)X3j_UWNU2{sN*V zT5m8RtGm3__?n|z^rhNcBNJb1;m_ZVQqyL;{!*_zq%yIq4;HW}VmMtX#+_UBb4a&B zfVcWgdX_h=W0A-B`pl%IWleDS>>%_yGG{Hs0)SvZz zHAQl7RkK&88nR)@h~AS&y!2-j6gUmK&u|PauXl}x@|ov^m>)f>3@pW3e;^y!Jd6>+ zJ)v&079lZwoMO+1%(q_f4Glo-2(5L%6`TW*wchmP%d|ZGL>ouc6_QI=*E=~d!PUZsQB`IV#o1F*Qg$=&oQe>>ece6M^ zoO;I<@}=dPSjm&|3uPmfW>YX?h83}8f5 zgQDwErMP(|^I48^?s<=`?c}c9yZQEn9>57Y=+0rR-dZ8x0`#7d3 zRzsh63|4a2+37E9H9za?RhQI2F|Zhg;&tY#aG8IeIbWt>d{ei6ZuU%V{POuct*69_ z-1JvhyCLRc@-Y`9#yVr17KVtVQ}8;Xa;)TgG>f*?n&a12#>espU*Mr@be6Y?rXdJ)5cS+CiCDS| zz5Yn7F#h^z{YM145)HURUc75?DsJONDF6a;x|OjT-YvjoFTaL8Q)K^WAqDnFa43Jw zw7@ghj}3p5b}V_ae;S`#M%QDDF;~8gMIP$^GIm<~j+5PZJRN%-;32GI|9x;%MhLja zaTriJu@^{j^VWDHj?;7V zA92QyghtqUqY!Vw6jjBAm}K zgKRybRW((y9?O*w=TEu4*@6g!63S=3RgX^z4 z)cQ%JB!X?96jFOQT=e4i3&Os05i!5bgAGRM)AZwo$l|};*Woi*>fikxc3{!58Zil%yl;YC zMGCp~4f$=47uwMLo}ZTYTAt8|lZejso0Cs35;ES>%qrmDdc?ZBz!vbxpAlnHTUMei zuwstpjGdywlHDCBQ`y}8BspqHOu!eF@~jjc=($&>A}x<|JW-N1AQdu$Zt&6b%OV2& zo8>^*8zlgUXiG0oREO<_{bsQOe8cGhE4KedmVUJ%FhN3sXdx1Ad60XfY6^Cr@6nZW z62W1WqT;H*6-h_hakb1Jf9IUd5~oB(4w~t0d$`YF>=sxG%i}S2H#{*?LAJNPGeCzp zZCAYo*p+9o8v|#heiGT#n+JY=LF(&s~*Bzcuj2pBf z_d3wGmMf=c3F6&5A$V9Kyb;p7@TsJ$Zdc#x@=PeZm(#yr&8(Bo=o@ z&>i4tPL^{tU5>3uYmT;dqB-sVxEY_6rnw!!g*jXm4+1dSCacRyfBVa;$HQ5WU#2Am zGn0t(>iONIW*P5ev}O&3+vDvQvGJU^c5OHlT}So+L{u7lr!?LPHFT|u9!X@PC3JK* z!Q5if+(X7ubTD1?|w2*;@66z z=K&|>N*)cF(?tYP$V;tMob}E`g|};AAby;?zrVQB#^NRya4O>Qn$SW*A)Y?$!Wo>p zA_ic)+}c~8NtV|OPZp#$ltx=BXs2^Y)n@+i@ptUXsZcu|V`eQY)1RHygj_ln5b}R=K@}FUtr1MCY%_jm z|M2)5x9v)>*+S8rCTW+l8)w|vbOzQN7TKDFglvA(6h!|RCyUb_%R-RvteOjr{2I_!qwPg{HPi!={Qnh zQtJA0hu?ITK0wnXP2#}9J`ESqV`W7|64v6ozX??;6`;@4v9xrI>Oa`X=7`;ymo-~- z7JJ&9QzbV{-~BM};$k|&!N38HSm1=Bx}7GElyX2{h*TthClCuZ$KAFTbf>X2a4;T^!?8)*M2-BD+3?JF1_fA>6{%bxjMW-OUe znq0f-J8XBrL5}Fgh^9!2~@yH9y|}HXw9HJ_&-T*Y5Ln0{5XsQwh|3 zKb+(B=qjvleyMxBNH!hX$J!p=dgimH$;={T91@;oNR8zY;iwS~ z$r>iG>SIahIJF;M5>#v>qh9+I>lT&WjMT6~_uUNP%e1v+-)Qk<1_&Vjq_0oX&4~O8 zSs?C3!$loWzZTa;n3#6tnP67a4GzPa`%569=Pz)k74NiIl`|q#7{)?Uv5>_3(dS^| zog=LG?C_aH0Z&Klz8$~o3^4gb<%_`K+mTESu!rANR%ZE5iWk;0*&f6gUXeS%#$Dv~ zXdj_3rQHeoS}Zp}LA=j)Xun{ecZ&3(wZ6r21G(($4qanQvEgkGXF|t6c8SDH?LTA! zK-ObI=Q92{k>@hW;j`0=R<+Zq%MP+LxvY~`EQde#rP|+rB9I{E%AB3iq%#`Y90(9* zPDJtxl$w5@2-O7?4Rntzio1Ye`%BEt#CIdu{f#Xl>Yh&u&r&pif;|l$~rtmSO zDS$ao-73sg{+T<9YCHSbhyAlm+A@6ZLYC|(vfqUN#pUPzW`uPrW}Mi%6R3Zx1i7Da z;+geIYW@8Ai>!b!G<*MW!;Zq@u~{1l^7!-53V;W`w75M8_1<&jXP6994)5AwyjL5%?zdE6Da> zGvs^Y&JBsP^EJ(x(sC+w?VlGElN=7|xBI~;?1QcEQ7h^DO?D`UzD>Nv#@DHL+L??^ z67zKt3t&OzMyK(SVGM1hYu3mpNTtxjQ$<-N=3+}!GTcNy(J#WnVvYOPQPI43gE#(O zec-YoJ6f|r>v7CtUe-k%=<@=K^SP4iBqvX;3>zrnqsC8~wNrB6rU{qJ1zFmjjF?|$ zNC+{bArEDR3~U*1@(}@uY+<79aC>&bW?tnGIi5bjZhB@VWjxK)W+WolP4>pWTNwC_ z-%ujdJL;=6zmpq3dT5g5B785NKTcq%(vxI)xuvlzfQ6lgmLX_?Kqa3lb;nMiLgC-7 zzgF(tIKsd>r&E|mKQu*O4xCt37yEYzo*wz`OW*?qXwqC-dJ~GxUZTwUin=h|ZY+3X zK6u@ha8t7%mHrEVKXo@{Qz=&@6P$dwI9~c#4Y9)|taGG7T!jj`H`h9Qc)>LjK!6C* z5YIO~p*(JvYI9C*{RWBTd?a`B<;Z^S@3~(=Yb~y`XI0)=VkVaoMmDTEI`BrGwY00O8Et6P1IhdxMn2en~rP zZow$D^4$a7$`OOR9uTA$RPN(}}P-Nk^%(yWixXPcW6-ew#zSXGNXfId< z?71MKCQESO^H@~+(3&QSfHt^ea4Vy}zXwNZgkuN1*udM#UrND|Dal09^~HmXNK)18 zy!pE`A8$#EMBG#8rCe(Fz}EBU*S3hL(b)2hq0bO>~Cn9pcnz>sK&Lh-y(T!a(bB< zh(jV4e9ojrWXGQM9-7)nrnEjL=vMO%9Aanl)MxI&ifIxpy(RFML=_nkH`*R z&P%*@G%VSE+Uvsu-}#UZEFq16n}drijH#%XAe_g-yx)kmpFp`faqRltGScEXDMIrT zyumJu*xck;@?MR65t+Fnq9$eJ`uwXJKc>HJS7!Sh=M?2jXFoJ!DZ6y(#)0faAn5Yi zm&$zNtKZh(MBKMkff2aOJq6D&koGAT`a^Oqez-C?X+52V=U_ZNMO{JN2*vZZ{jt zbS((wm_FJ*$mt89j!ORTEe#V_>kaZlz+x0&8VxipO8YC{T%!&@Kd?;0V%*dJhWcw_=&C0$G9#SKn1|-Pd?fiD*{N)JEEObrU{(0KNW!$!igE4U49#f zuLjqr2Awrd`@LK|qx{clgBK!}gRS>12vW!1s$WG7AL;YzYzD~BsZ%_t)gR}WPbzLmuCQC%^lx>mh!1vCd$`j9Z@z+>ooCD*WG8)4)4E8jpDiWa)1SoaUr*RU4=aZkz6bEb0!uH? z`})ZwR`htd?}c2bBza?U=Qe8;_IB+g(Re@8Osaf|*((#MyVFQokM&K>4Ree>zLk7-`{zbvgv+C4bQKVS%RDj2 z$xVo5cMXW{*e+7y0x0JL-#a9FMy@`jZ?y~eUK&}CceB4NGmZn4c`_SUUwldnh*ZfD z-Xu}6>lYHk=}Ri3{~G4L(F|&A~iJ8)q5+IwsG5%L+cX|nfE(Ut z9y$bgzKP_wAJXMSIGKfWVU+k@RJ?2CUboi@DE_#kDw|4bEolm_#MP+q-cs>a%$gs5 zxEb#soEk^VL9)Q~5W@G`BGt#b{OS0~A(_d^dUUd`8IuGBHiOjLisQ|tN)_qHVS*li z>fvszUBJ06tu{95@f~%4hQsdcxQH)m?orh_Vmqmh*eC#wMRsax7A0@O68IOfZ}HZk z=ylK-Z`FgIj**-o%>>?$D)9?SY|dDs^2b#Td}Jevdemj|0x5nI#H_)^D9PVwmvDYg zM>XvkjS2Kpny{(aAq_0a4Ef^#{Y_=??-h7j38bg9*wBif(C(29SjFKc>=x6Xe>>`Z zNl%EpBp~E{h-x8*rX9~_XG>PINgH69{^66;mu2JcbB?$>35NVihHT4Naq2($3R!k2 zMVPd%_%KLRl)|#FP4GMHWdxFVI;JvMKp)2c#WK~1bf#JtMR%Orh7(rl)L#C)mS{=p zj_KS`B{qJB+eHNb=@keKZ@fGoGYQt!v1MLX7HDopH$FV+4Ik;G^~4gz{i)Rx6pFqU zznx5qqO881H6Rr!y2V^k>P8JWB_KDIPnAGZ*rv}oEVtIu8^S4ORQis8a6_k%?%D~|zZh*(1U>KAFZV1k*6+>QS4y!txBE>QH^^rl?&9{#CrJ)~A8^Z=-5yaYq$?9_ z2uIbGHa4>1e8s2!5%k5PVl1&<*70tN$uti&lmyE5yFs&@= z%_$f8xj|90Z^~|CSeWs{EDMMdD}TheB-sufRfo<*J`+`4b~+^Y^v-j7XZ$%zhsjB- z;p2U$+&Q>&3;Kh7eZ3_5(`cijCimL$%5ev3-5~rqtjj5e!p!qbfiyHqb|)Y!X|ThP zvWRnvr?Easoht5yo1DsFzQWs6coTgQkn5;dY5H(?`7p%c^yVtsvj=x+qEkaECW>ZU^M{7{#<*|0jKME}ZwX4X`)iOA!s(lh8%{Z$j5u8Ow+! z4Lt)SEYlDJQY{P2LzH2vWn5Ca^kS~8RA)=SF#K55<{~#(0b>^fu&&okyI)`X93G(E z@LY)RWRYiU6N=4MyZ{Qv1OfqB9JO+ZsKA-pKlKvX4#t zwx?o}xysyM5$bMwQ(Z-KlgnhKS%jB8Sms(*Cqq|jEqb?z-;qk}5b=1n7+aN2aFT8P zdTuzLTM7OA;N=$`jh#aP9)DD_p$#`*tHbQXS5v{4kE-KD!51VmIo zx*GxM?(UNA5?C7PlJ1fQ>1IjkmTnLMX^@U@zdvDqGw+>y&ppq1Ge1AB;`(413*OLT zXw`Gdg;&INEU=FySJ)I2L|1*fxIrv zX>ftB5K%H+k&FxHqMfolgQ)ESxsXc7-a!RG zzJF>9^$)&@en^nT3c6M^{g;(e;I{oUL_vl*JD@3nLcx@3a_Xn^gNW514EkTw3u-P_ zaW`hZZZ3a5(yqJAy6TRaxqN%FB7b=Jjp=Fc)XrqD+i}hjqkv%gtk#~Yg(cqLjXfSX z{D%s?;*0#Qdg<=Toy=qi&zF&+0ZzH^>z`!%H*(Rb4(&)TTH$LMwg>&@ea3DvWxF$= zl*9bVP8W6H!Nx_5&U;~;nl^9vyZ1rkxf8tE75$zAvF$)Nb^{l%QC*xkOpb}4~9SP6F^ zjc*022X0uO5lWl^TCFG?;Ru_Y6kHR7C3)>-+-L{nP`zRlGy5T-hYerS=}0Ps3IJKu zre11+Ly>L|bZc@0M6P0qwEb`Du;S=0;*#iLG`IF!U-lQPPD2lYG~8%OD33Gf(FaRa zLGS*vuUlYV7i+upxTKbc6h>9R472oncu@y1qLe~?=T8w{hP@7XK7lle0g-vq z8vE`nG+UmDJ!VmlH^WdLO652Zr`ftUIV>5eq_J^3IqfqUNW#{|=&U)-+VVh62zOFj zm}{OUcLev?(tx>O{x~C5$%D7|>2u-iDY=?#NSGIJb<1kQ^qEh@venl=BuHEj)1q}m z?q_XriDu-a=<3f#r9E z3$hb9bM^0`sq@`k*R26Rs9HhvNmo)LmQ23_LwNEBLkoXRZf88e`xw`~&N*${Z*VZT)rxI3d$q z5f9P6ZL!#6?o=R38?uIvKIZkG55dxN+`h*01jx;NWi*zR8OD4FnsUTLcmZ{&2Wggk z+D`HAEL9G6YZD2o?Tjo{4W z<~VVb_%_p+`6=04qv!Q$STSB-DEbKt<>p3VICrJ@Jq1MHr3C?Z@<_Py$ZO8;gPJQ2@8Yq`3 z0LY|Hpza@*l~hI}FZywyPY3n@JF+ZVs)V)hEC|xem0NR2-eCCKdN}=366#C-eMc|IsIYe@1wK{mo7M2=RF(p zgo^=rRgbT-5D8)cs9$3deb9#?iLI|a80<3x10Uf*5wZS4NM%h14#dpRyyqCui5^Z- zj;w&B0dyj5KWSnRasO`A!@11i0d1dyueKg;QjBhutT56_UCczFh$|Im1z+6ixcPrpaGmavZy z;@fVlGdqyB0?{iTnPK9V%peBo(3xvjq!wbB&_C5%OLF*L(hUum^0Bxe5+P<@T_e^6 zP;p9EBsBWy_4;?a#D(>Iz!t=WBfFi{f1%6%<$6rY=>|CG^H$rP(#N9 zua~~h#?nD>d20qO=@INn0d!)MkKUGe&|rhFy1M7pOU~EmlHk{wAGeN+ zNM#cy5I@>T$!pozsil4WM=}IN_NQxh4%|fj&cuEksmNq1lMfT!8_G+;(?0lWilx!_KTYC;hInPKJW>H2XWtM$d1bM;HS(9%DtIamY^ zlN%c`#ep8_mD~$aSt*z0v(Wmi#&_Lem9i0F9ZG-MI`{^<}hZoV%ab;m{m3B7h0jfOXMJYzu;~W#b#S%=++m+^rmuM|XNk zrmWLNVt&P84hv_-`qS}sKEF;$+xr0$_NVur{-*Cm69q~dLM8oyL)5XZig;CqSO|1r zho2qFfyL%ftv9#cw~8w(eFl`2++S)c=4!=BB@jB$ll&{&nE`Z&C37h{kti*7hoM{D-)4BG8B0%m+ciE= zu88LNgrq_oA`Z&{IFWd%uvnh0nDqUBg`Ok7D@4(boKBVqS~l{{g$I#HCx++c$U~T0 zB`~M!V3e%WEFKFW5{m4ha;Rqwx}~0R0M80Qhc@T4t$yot9tUipQ=1w69t(6)U^hN% z)(46{kQ?X{Ivx8~`WexlIQilSiF!CxGxG- zME~ezx0Qm$vLy?NKKz=s`94Gu5ea1@2`wImF4MM5u9LKU9#q;Cu#qie1HOVAZ%r8l zxqRt!p8p6O|I?Dj8M+nrDKv|_$WtlS0G(s9h!ch}5mdub9vr(%31R9C9$fV>3Z3N8A8AB(bZoy+fQdhYZN^bI+CqvpLL1 zA7M(?kg28{mqp?&=M&k`(p_f~gRvhYg8Pj7>oz!C{4Vbt;mzlZI^HI1_*v~ydt%TW zAH#Z1X$AVpH!;CUdd5b2oV*D77&!T?*3nHBB_D#eaY`%?$MWUZvpH{mFUPR~3|pbP_V!YD9i zEblxR-#?W6# zHrIe{K<>81(je&QrxNbE0h&5`+}@#Sqt<6vZU40WZFy0ml95~H3-N$%(L+#Pe^YO1 zBgi!URnM+CEfpDB=+a7ep!~9gw(!Kf0;xq6*`dZy+_qp*#_*1(Gb~58sSP){nR?zj zkHN?c@on#x{Qo#(16kYJKQDV_qy|q=G#Q5skIL70i@0&I;B1 z#DN>VoCU|Ry+7#^{{*bQ%{2<#@{Na^jbJrj_u{%6E-z+Ds+ku46ST!JE*0N1Gi}$F z67$$Lwb8L8?nX+2S$m8R9k4kFIil_!J%iv#_+ZkD)L6|HI8Zu#&Up(n7*|knY6Z2> zOD?GCP5EcSg);PbR~)LBzqTEC($7F+Daz2mU&3`zVB{m1*=Al54G>$S1S#tuF31RV zd`TknV9g#2JYkZ*yO_!+iY}f2-=2A;y=_0pq2fLf6Px~g>$^*-ZSEEl9TPuLbGEvyj@Yp%C1xq+RGl60JqXW;c;LNr zN;X&Lg!S4FY6nUpEn8}lFQ~ilt~3XO?w3M!c0;~0rOVhZHau|XY_y{lzLXLD=@8gh z0qLDp+}Qws~NgC=<82b0~)HvqE@X6JBMtSoy&P z$?4!Y>$+}m!B4yIPav3?Q!fF?o9+OZ>8lFWxAQ~lXBF9Q7;>2R0!XXSymVx^>%r?~&Es-|V3 zM6MzNQ`bvaNk=|z?n%*wB})6EXIoWV9HUjVyH6#B?)7VmwyP^|m*PHfpl6?_U)+s5 z8v&i&^s(_W_V^qV<01{FUy(#C zwIlMMq2w9aGXfKvPwD%!LbasMAl>_Qc&I@9aE3G@`XPy6M?>AOS8o+H0w$2S-W{RD zfaX(VkfPk}iR6d}rRVh7CwuARaF8c#BsxrDV zltX1?n0OrM3)M*>(n*w-_>LOcw#>_T9Y4?y*>C4TdSnvIvnlohj%$Gyzd;P?`a7`t zBF$7sOsDHzNQMJB#M(8FN1LgX+C%7VcmWv$SYN5ra+`%87YT8?LT4dcGMd#y;G{mm zZJf^W$l&`2A04?SRhn8KFg&b)1diMH_A)K?gBFDc+Ekl^r5#&+t$v8-Jh{4!_eu*Tx5KjzdeVAZXnu51t&`iraNyC=jnxVRRU6z zJ;D^%&|B)-bjP^B^6_s0@Py4&>5sT`J+v^jO#RhvR%xMxG`ST3ds9Ya)b1`*D+&2b zd)K+ed4gq-KhKv6reUNMzA-;BQy}{70K7N^)gc%D^@&xCc?Oo2wI3qe&z*#${rasx z$Fxf3s~S$Zw;#zGZ@j~oJ93*sCMWEZCEoWSPfpPZJ$3~xx*u(7dZ8#SO5N0UiT%iT zKDDlwVr7%7f51+;r!c}7_gWPlj(4b_4#cpUuM1&n?Vp~U4ece4|FLIaAko@3z0^i9 zksax*8@}O`zeDM~O}Kg5OLl1z#g$6UH9wUS=P~-Kv@|ixoqU)rzV+Fxt6LDPU2!{84dAoWY1SMB^v8yZ&%+0-_%;IBx#m+d3 zXw06sPCvB77L4CjFTSZQoIO)E=Vnz=%~w17HP`<0Kbus=$D+|{h0mY%B|cBgpFdl` zArdJPH&gnHS8uH5Yk3x4SPCM{lIW(@w1;oU_tgM`qRI_@n|D3+8dJm}TFU23ZjD6zop=;1BE?T#;p!@~|TN1UKD`zs_V`k+pHQ8qzgLZ8!UsN%*K z+e!pQ&vT?StmCdMG|vD5NP*|r|MF&hXMiDGRBYw`m`6lU`g^rtkLXO#2LomfJ3I7q zty>yo=Lyu?t+651_*}d*oFSpH-*1pss}Ug7+*?>BQA+uHOfl#o`_Z*(``d=o;KXvQ z+j|02%A4W&E*4?jiA(?a^bLXVBu1H$L}`pT(|u66!An?8|)3 zzcUM~?!;7oEellc`Usl_MeN0X%9sYRM#W=vII1u1|B*(6wsn=K<&uElChvCc$`A)n z5iG6M#b!-Z$kH~lF8bB+dD_M2nU9HI^AxjRH2UN+%B~ky3;CZ+TG}ozbqwv7pSCJa zUP!Qm`{GP`Jr}_%KY`#{R%1t?4rPxSx<)SQ3gK7GKyuZ5>cJZN*fcdq!S#ALlYJ*_{?HGuYMdbo}5IFH+b4gX1p$;>uL%xJx! z=fD?Ji@!=MFEpgoSIi9Y&~o=Ar}!u8k?c(ly$!QZF~KBsfvk*I_aC=_;LK3)-tEAk zX3t#NZ}T=fg?TWCF1zhfu5>!d;YODb z8kMiboS-4{&1*vP7;s*Lq!V%UD0~UP^5HS(AK-GW@sV`u5MY{9tsOP=q$!WtDiZ(5 z+fb)z&~~P;UDR&^Uads6PM)&1h+Un=Nl}PN_R7$kI6dF zQ*;B%p9fpTzJ1lCqjTh)sPgC*JXQ67N<(`dudvK9?wO`b2)UQgfC?(2@PrsfsptvU z#tndN&=g7DXv686E`q125Y&bVjiAeqIXPrTcB4bq10Z6B2=~SCh{8$QPyIZ{SXz{n zfOrg6l2Bt_RP4#G(6HaRR9l>xH7t(H#YySoHLyfBZv6vmu6QbR`6&rYCczHzzvEI& zzg56*{AS2DdpDa?TW#aTWmcT77>SXgr{V;c7+(LTw}U!H^l%1btPVcUS@)>xzTJA1 z510_9DnAVk^t*h`=YYL>5965HyI*f~Mi7;h;U82M6!pG!!){1NL`7(90&V6q+pLS- z-H?^k`e@vKd=}`=^Sug>T@V7V8Bt&d)5iY5jbFNN_JvHnY_R^dI%6(Gclr$%!SCQA z_;q>iCV@9Zy_aTc8w8iYQe+e_jgsu7Y#ru;Jar{2W_akN(3j^Fnv<59OJ8Awni!Jh|4s)q{X^0)3jyr^=O!lgsM}hhJO;+lAO~QOWvKK z`9X2F9jzkUFrIfnVY2+#h9{wRWQc{uZvEu{B>8a*l^sPE`hU9Nahvc+uV~{B6qxqO zT9u>T|AI1l?nxMLyc-Cik))wd_ItpWbB{sWh}Iq1>4P}&`~W9T3^{2;Eq76FWLfE8 z5d?c<9pjsIAOqv}Xf-`P@a^rF6`8IA1E2|I{htv1<8(1okPH>K?@#r$XCYFJDpXP3 zhCj0x9y_1YDD0gvL+J&zB^?}UAVa6(4_v+o>UFDrUXyDSRA(> z+D@+T$dzktWJLs-hE-+y!ndxM@3W@V<}3VXr))41$lM4sU=VJMoA>BQT1{p&ziczd zfHTLSKi?E(x-EO-Z%ATxHjwGqnb(Sb#=814>q6qg`b!3F@%gmN*DQaQhhxnLa_d*D z5L}9nLoP@hDbBb6FIXlb-jFeqLC=iV#6e2H0A~uTizwu4br_atksdBJjlBlu-B|}e zu=^BG(u)S|2qGzJ7d^si`75w<7gwr|yT8aE;leFjP^2`xK!H3^xwl~D!AgHymGrNq zf23KTfZSde{ZDj4%E;^UH}Vf=*Ur?lZ}I$kY15=@?o=4zwj|9jOdlyjrDZEE=G5$7 z=gto-R6IRD=a69r=X#?qZ%j4Mdw|aT+(eL~AdMHN#bjPSG6lGEiZ};xhNapno&&_E z+~0}Wp98%&7Lma@zW8A#AmgS-IbR4}pS#EyheTjW>o+8amtraifh%oIh-B>nrf7kv zUKf)+?$}${0*#1Et7YUUgLdb)$lq!XpD9+vILhJ)i7-83n7Qn1KMGEu*QY=5-o8<< z8y~>85nKHzfoWIMdVg511;;iM*Y zOTveMKmjesEilaB;(I|}Uy;q!&4Xh;ueu{-SHpuc{zFjrFV}!f-R$>znT_s=Vk7uw zY4>ti=zq8a49(+D5J=6HXKB;sITcJzB%=ToM|JRr)HyR$5Q_e~{hv!?+ zAHe%R1YulAC+yDRBjd}XJUxsR`7&E|*LW&Mg!(1{yKj%hdtIpub7}CG!Py^=L)-bi zuPMj~Pr@aei9}swRZkSwS;hM-=0^Had*jk0YS?NkErADxbWlmv=y7^ z?yF1B5&VV^tgE-FY^;ykL>RHMOm8qNB?DvoxHiUr2?9Kl03p(PQb|vHl)rg6ta5}O zVdm!5ZRiH)ti2#mg)R~)06|P(WD+BhN&Bb9Fi*ENt%;KB9~^BD&<88_(bk%pD?i^S zTPv{ZKVf+ivo8b;31h=^d7NkHJ0Y~Ug#A@!Gr4>&Q_)Xe;=IG~EI^wk>6qrO)Uj_v z=s_Jc(r*JLQ)@RZ5;s$Z1-FOvFJo1bJGQ5EoVc>tF>|7s)A>Gbsvr`f>tqTqFvm?- zG{hp}lVO4wFVCwavjf4)NJBy>J>;4nQ}vMG|LN}KRYcxRN}R<$Y;2uaW+(wD2pxk( z^{M?tSpISD`Sed*g7#ii%TK@%x#KYZk1?!Tn*`5u<}14KA!N!6-mhe86AVo%Am`zK z%KWNkvKhyb&zj5>#P|ni$PA$l1uJLxJ5{?FPDSt5`>*a>6=|rq8>{u-&I8;lx2}-MaDJX1b1=R$??KwUriV_0yQ+9*q^ggcREPTu3&jACyG{26{ zTzDmSg&z&PAD!)9{WZV=vBKpjM@)0a2PF0dKWk~u?!mZlu8h2H%!k2f8%XEaw8oJ3 z4d`Wj$}0v9n_jrC-7GpuutrVlxA{0BVhTNAc&R7>OPY)c8Lcj27OnaXCfI!Pnf+7p ztPo)fN46Ic(V36Vb6-|=FR;Q6U*$fF@GhXIYdSpoU985B8oJ%piwUqzxS0e##}f`t+Wbx=}#Ecd>wu6f!4A1(WH-l74&c zmJ=T5@;Q*W-?3qDm2kSCS@V&1_~)YLaqlR>e%Zdv-BBAF))O>Q^>g&zy$Q)B!6GP; zfb{${qzSRXI>r0`)$iTwQYjQiGW{TxwkXr+snSu=UIj#Fa;6_|XV<2^8|(MlAj{P6 zFsNTx$FkV)`Q2t$fW|b8mIZ;l(|<+vGb1mSJNAp>stKFmZ$OS=$E6a62E0hDY<160 z+=EL*Dsv#4krOv!lc^#hTR+`F#O|)9?+nFkzAR?RXv?B_fBnBl{`^X2R0(d}uzwJf9eP zAx?^e8mYS#Qf|W8QD)Pg#z^-GxM87a1nGwOzueJ3Ur7O%(B0Rc4!KO zX*sywjLl?&wlSxMMczy}rBv$tlVjMkp**wRRcvXW+{hbu@3gHD!y%-%VtxJ#hoj$~ zS24GCz~_GiVk|nPgP;A~{yDc`zY2oOjbjqg3b5hIOYT&FFCE4k73xBCV=Y9waM((! zV-QxZ5a75MEngqc+$u;Fb-z2sSiF0nAzdXIl~YPs*k zq05`!%f-!pN`$%QEGVQnQG!io^e$Ot$YOt?X-6ZBZ2GUf8i1k`B zLiuFzW zo`UVVUYq~l27YH=!K&k+ZU!iZq4>q`;$MoCb-US0^oOAOs5qjczL2!>z+1~u?=y}E z3(rI7L%-QDg3)sp(7QMUM^2Dq@eG=8GOeg%NYM8-yB>Q4(qe^9BkO`GdZ2@- zjUNdZze>&SX_puPC)j0F8i!N#?{vmKUl8;p{EA??-kS@t;Z(|9*XK%_n#$+`_2@U@ z*{u^7uCe{R2RV1zbA)m1baHo86#GpHv#GR0(_g7Zuwfq7>%r;Gom9Tf%uW!J%bQKS ze@gsvwu{V8El=#sVE=Q$jeTM(3PBe_|joM zH8$D!XN84JoQ!~>xz6@W6g5X?TVVQ%H!7=CM+j8xj_B8L{IOY#8SFclv$^XKTP?i)bz>E0Ug zD&UUm8u?7Z#uy((8vn1@dA%E2$6p6V5*@wY4%iQ#XXPtRA|o&E1EDQfDa@PPssyDf zlOk$H$Cyr61rX9RK}?YZ86_s2Q2_Rv6N-m;h|3oHQA zrFOZ6jMI_{0?yC>I3px;I&cAZR<0QhdM?G$K?SRuvcE3rSHGdO1v9KeYkV<3Y3{zL zvu+OlRU2f>pyU{JLb)<#r=EB0>Hdg5UjS(971zC-cHN{Jx@W+XH}dLRNNUz*2BKIr zSGv^OO{@<2Jv&WskF2o}qBg5nuoGV9P*QtE{RQzzMrL3F%|kW-_w9QNLf9D+jt*1W!vB)I!946rDUO1fGP1D}SV-Rf2j+A8G%wdmcTkEs%hfz`q9=^*bT^S3=j@qk>ht!}@^p#@hRN2mrcSzsZwCXlNRV zcyig@U2tEq9^J_O8pXDk!eWdB_zkt|@c29y4lCBd?*E9rC%)ZSB!>-fLi16n0hkrK z6)SEnQxc$x>%?tEJ41VG5Y7#g#$@4w>hv0}(*IO(~xMc*4`bx1DX^od%T zPvB$jlV`Ll(v@`pbQD~46?zltIeMaLSJyPMbkcchQo}zkdA*Tg@FMy=%Cd&YG#*Ii z@glMZK+%n>0TQB~w=-pZ1;2Lnf;elNZ=0>YD-=fiIeR=k&LjZec%Uc+pYqrlA(2q% zLiJeX+=*X9Fa>%=k#ntt4rRFmilThow(29w!l6C?<)4`+fjYa%Pppo081{RIO4@{2 zAU>;6uZf`ZeTU(IT$t-RlNmbrcjApgwfpJf-<8yN|35w43}+lx$T_xSG7`Sk#;2^F zXC2*uteD@sliB~{%Yq^yo;~K`0g+LoI?X93wD%cUDr>Oak-e~8SeX3|@+Y`icj867 zM?&&myNT!~%&M$1m3vt{@#Te$zMPvF3Rn3AKE2qNv24ztA)#0XKu@BYXEx{H*I)%9 z!tc9zKtc9dAnMt^!58mGEB;1aa6ncL6z_sa2!Y>tX^q!%0_=I!fO*ZsGQpQb#+u}E z-@U2I@bs~D>k-`-Op83NDoHK3+J$1z!Xp-c!#l^5s)9EF6|mAx|DmwAK|ydZbp5e$ zw%vPz{AtP5^6u5Hl&9Q_fKOw5En-HDj6X=t=&O_U{&zZ3EP@rS%0 zlNY36UotL+L{5Ct{09%TP_owFj)HCU4KVdO(0wp`irkg<;JdggVJ*`voX-N%t1t=* zkLpDe8b2;{-m3n_`PCqbiJ*g%oYy?@d`2tKm~gt@jC(3Ul=A@!8mxg0v4n676j`yg zAzx&tzblmj*m^B$uj0~=3>{raJN17q$f+EDokHaugMwB=g8I;xU`S2%cB;WdA+*$= z@$z*jxNyjy`UZ0Q@M)Ph2uhM)tHbL$-7(3ZjYycYw6&(ohNM%RzyH; zQ{>7?>y0o=z|w=%^^2jme*Y8%#tAbfzJ^)ioGk`vj6s}!ApzKVd$-Cyv`kquH{;wv zUg<+nW4hDWWHVWhb)YU8>oR486`9>3k9KkQ?T4+KF8-HX3OW^s@OasY6q)2^fkXwv zc<;+`k~g0%glv^+UF?H)yy}@BWL@ynisR*fB<5N$541v5bsUU1EdoK+btf3%FW9EBL1pgFezPlqUEbE z2j(@!4qjfog!WgK(Tnf{1#N>vb*T!7wzrFYlrRdI>ldctlSsojYnRB4ht3)2?0=f1 z`T%WUAZn97sn2?A+4>%&0d<*z0Hipt?GEJhy&!4oTMQR_#b3jm+(y@gf?b*ve*5(; z60qBN#MHMRlq}*SFzSpfpz!m=<9gsB&fsHgrC9-33FrzQDw zk}Wepf~!Vd*--%uq~hs(!#epwiUcIL0i^k+#CIwwH%Pd0tJ+j(h-8} zRc7~>fj^To%`r50bfIl`hDf%^RmzgSzAtI z)%Uq$77uSem|MWquI3+dr)$XbF{vxQQRyPKFl%Z>)cvx%s$5v3m8s{pWqdiVZttA3 z?OpuZauych-l)%PeEz$9wus!FgfGRgOrF3ps>j!*xZI3wnpMBWQjSDEz_o`9o3=d0iK*3KpnAZex~^6`W*W(B zc7k}@1CddS!Ef)p%{1u@--`?$9Zq3DQ+=!rsxDFCu7vW$lpJAhxcoxgRceSos&=;) zWcspGl5%|d>D^QKnLrk@dm0zR86KSpQd_8@2f=dNbhF;&#r2}W4(a{_Kq&FpfzD$!{P;m@f5K@ckAb6$=$0#1h78V58zbWiy(g27M zBNKU^ieFO($S5c98>5%L*aDdxN}IAy*b4dDqx#GL)0h2X@u75vpNDc&?5 zK}xc)VH{T%w|}!8#Hl{mFCLvogF*@tN?gvp5*knUj4yo;2u`7XV@mq{7d=ck#VEN8 z3yFF;Wc1`jtt|32XQ`yf4KMLyMZ)P|e*YZ4qo{5pfG|^$pBfb@DmH4SI ze&FDhuTdwWtp**+hy*ArFT?qB_RpVWkmNl|!6fSd>aKu8xjG_K54myAvh_965Ca4o z8VKD6n^!%L$uPYYM*x{~CZ^}8Z-u?_EO=P2DkV46Dv}(xfi-{u-TC_(ZS@G$px>Y8 zl9+U!N#EX*jZ8_vEb0&uvLkGX@i2NaWVZtM%?c{8BJGBAFur@ZXn^~bD6s#?plbyw z@!)u{Bf9nB_ndQ4rVfkuX?uNuVk3&$nW{`AF{IlHTb*E*3#WZb*j-SE+-jz9L#a@+ zh={}*^{y}6G(;SFZ{l=I~G!`Mn5MPuZ z!O}6CZuHq>PxRCkwQYYFOGdihvX@a_aPXTk26A7;3{%NF`wF~2e7X~YP`Z=L*CaOV zr4-1?K0w;gRN>ce`5+T~f7v7*VTxOclsMI{lydGUVGG_!;VR`(iZ41-G6!O{MVFa% zMc9JXL!Me(QC;!Gu|<2kD!sRt*oWD4R(8 zs_y90qUQ+x^SWgEJo|@w7Im1+@tu_E~PL zqlsQ63>>2FH;}u-Nv{mhF~J!K_5+%r_PiCUA3G`1k%p$G$?+Zsq%9Kk?%h8skBdUX z`h8%ySyw8|+j`vmWx{t^uk$DB0nAoFPVVf+yWg0h9^ zrcxT?n;hK5=|reh;9;lS*4w0J$g|NSc{>+_5DE%M;1}cz287Ip#iV?6XFkc8=WOMs ziO3(0hCU6G$Lt59`^851f9vS(4-SHD;dx2`AvySmpA$uJusn&z`*BQqKjtq$q=$B@oemtC`#>oysZjE>{_c9l!pqw}hZSha zZamR6oCR98U5+B3%TQ{4HU2tKlYBE)JsbiI5ii8IhGVswA!shlkN#e`ME(O>;$*il zs9SjQ73W1=pwqsgwI&N`YxuwptCNnSMI(bRo$EhbT1X*xC(e&si}IqOy=mPXNkb^& zY?*q-22i$rLlZs@>04FbMT@-EMcw2j_&TYj-_tbab^NNDqPS8G*=Fk1dQo_$n-(?9 ztO7vp7iuG12I9ECEN39pHr1uRoCY-Hb3WS;x;3}JJTys?zG;AbRqF$5rlI2Bt(^`n ztioZh|Jd9P%YWtx2-Q=ee#EMSjhBR+a{?`Z_wN~`2u^Uf17yFe;wnN!)8gA!rF*cm zX!Prx#gXEDH%S-qGf9|5qAs5jm6LMcixKabkP~yLZL!pcZ%p8Ty$qIjR)5V$L^`0s z#eWmp3LQSlG8*D<51LgCI}DP%;oTg@GQU@b5&R62i52*WfOD%1j0+Qb;fB*0RU(xOV+rP!pZBX=vB&%Y>D&L{7 z)6~_v(KE+1c=tz}+h?NRL_PBoEKxYK+9}oEZ zv_7e$JTGMqM*elJM!6R#*1^+z_sSjb7hBT13c5-0OrwLzVs*5r8E$6*gxv0e@2qGn zbkj;YKi^wS(%&mIZ>WtEbqeZ|#$yI8UwKcpTVU512`Z0*LGzmBS4MR&uS)y2@o>^{ zh_$psjbQf0oM)~ym)5lqfVCN{OlnO+CF%ZC$({631+i3!Ci$6woaQUE*bcPl4G|?k z;W1Yu2Q&c7uqe9_-!jiLYeRQO2zBAa8c}a?z$U51JhqQOVuo88_Wb9~zQ zKAW^>uUEniT-Y$us!L=Xpea|Kke}k&gRdG-0s(NPxi%_3iJ*mxa6;FlfY@p5eb7nG zMml);=F*&5G*QV|Sx(*lRr!MA+Qezy$Bf3cdn6Uq2)SD%BoSKXTRFm5Llayk9FI#A z$JzLXim-R_g_5l0z%g-UQ5$|qTO&#}2Th1>c*tz1kaL*6jm{9%8`brl=Yku(=F-2Q zU;4ahlLHLoWoSIcndXi*_boETw>P^CWfsQhAEnAR&uAgQXDey-FuOg8VGDW++7=Tm z!$^wvO9%gqoLRE|Y)&(F+i}yj)pOCTCJHl}P)wDAOSxegZ_vx8@gd%HQ^AaY$ZZoA z70S$Yu=`4>X0-;Wwn=aG1g`9iJ%+c0wA3P%vn54#LiKKFa#Lo=^KP!q%_ydZX>S)T z93Z0DFava$77z@T$tUP!i0ra*gx2ALTG5=S4RsL&)Ist2TO}Vj#IQSX+truq`8o|e zX)TIdj9qeT*;?0_;P*N*rt>-E*k~beDQR(W9tA2Lv#z2xzD4NIt2R<#tmmqwBd6NI z5DC`6+OU`qThAet-%DCL!F}5(Ua_st2jE=5M2fyEcc&T^h6@JJv5xVu?o)MN2X~zK zE^eS%&TEnZPPr6M=omS#fjA)B9A-6<%4yHF?xgS;RJ@-a?&pffE&=*EEj z_gt*W{G&R!E{j4pR(Pbaqp-)yfR8|}{jh;%5|U~Ww#rt>W4YHzgYl`8U1?+lQG0=8 zn7=d0!u&VWjV|A0c3l`+Vv6#!$(T#K(c>xW`UE}36#;yt@ zV{&#?et``@&~2(Kpyjw;KJmP6ry=|Y?_F|QZ)JJ;(zfQ7J zQJ+JG4(bX3|E=O1N9VYUb32v1D7aK16u}L9c^UcyINe4k(anMdsgJdne z)%oNrr)!T+aEOV6A^XBKj#P}l0bli)dn~InS|DiFM1!$-K%cJTk7?b-*vN~sNG+UHFO*zCe`J@|5`t)!He8*2Vve}2 zjY>55jTqzZOZkz2=O51B(!7!BcghtI<2J)jYVV%)&Rcu-e|piFJL&ADGNNlv-Gnf} zZng#WW!8RGk$b(uXw=5wt$ss@gfIkj%7{%=Z+( zCfxg(w*ml+fPi3ZxGWTqMU+}tT*6D0xlV(0xm>!IhG_TPUMGodVV@1Q=c+2eU%Zpe z=DS=NHOmWDUk6;QqhZX`S*fz`+TJc3txNR#v>J=P*zS$(bH9?#`DiMvhmh$F$RiK{ zc{e?rO(@sFlC|h6dH1IO>+>%Wxrz(;mTHQ8@t_{a(30>#kG2ItMZbkTg+Z^rt0ZsF z@bo(@VPY(`gds9?RZZ8kvE?(&oA?-DEaMbw`LEr~_Wt2@zUvv!*H;z{;uKn=Uj(x- zt)2}EwxVhDMu9CMQvK8zP6iZX*dNL)amljGCBm}|`hEi;!>vwdGj1aaE0ie`_I6op zz#msPw_C7xrg7!L#+7I6o>B!^|m{<#a_Af2)#{ql90MO&qSNA&nSe~wKs3(vD3 z4F_kEI!~SuXnQ;&?!$w{Kbu>o@(hqSw#J8j(9Y4yr?Nds57)@Im`BmORMaY*)_cv0DFVv0(Z`Q%! z97M2xN5;pc?^vogfdPfO{96{D!2ckHXfB@;75pId9F|C`schfFsO!F&4Yk9S<^5Es(zucgXg<1ilGbUbML= zCK7x8aMxTu8Z}sd{h6elTQps&k79I+HH6P|iaz1c8pSO2yc_OMSj|Kxf$B3Y15@D} zRK0aSto3%wP*KY~S>qJ6j5k%C%q8E$$Ns6w39d#1<#d?vj-M-coEZn14bo+TTcBC3 zv4c#710NE1%y9*!br6tWNf!^|vdz#gB4PuD&~7|n zGrKimhV)EysS|X@0WS5Xh-U;-V9?h(%bovrQAOmupNtn*D0&pXl)!oUggC|%^B+l9 z9Z%=`{-1LW$B|>YbC{lH;$UK$iHTuyn(02+hUw|Ios~S42l@#vWGJPsuuY#bO&okUwAaQN{*G zBJJcG`~5ouqsGoSv)~hfYqu&IKJc?bP;-2MH|gFCY1nQQY12V7S0doMJCIcQ7*l#%xl{acJ|0Y zT^Yb%Vh=y5+Ymlgeg1O28CRXe0)E{z$l!S$(ukvdj^xvMNb{Q)dBdG21g{yuBGD7^ z{-cklb8#s7bndQc|BX5l%EN%nS{id%my@JW_BIn-@uFGzz|N`yVB&lmv}*BuXD?>v zh~~2B6d5-hFgMvZOHH-+Rn@_Y`l=05V@Dreo+Z9Ze66W#inC|nY{+A+p8Q>kMpEX* zm|M#I=9v7`Lt3O3ibWuLVvd#-0)|N)_h)WhOEptsH&7Gyxi~Mrs#n(8I;?K1>=6OI zs6!n1|2}186ZgVE=TS|5vldiBLNk|ebOn7d5Ip~L>Z=a6TE9_pe{W*W$NljcueKf` zz1>sSbJq5kCobP5k$DNAvGDs{Ft5jm+}PW$k$DHhhY)X~*2f0Chn8ll`eZTQ2j@auYm z+;$MtdtCAN@p;cgI7^1}-t)+Gc^Z;LZ~Mu%wEhrL;!<4d7gDuO{n#Ut_p!ddJuuur zc1dg`FHC5Q#_CN|9U-$OA>Q|~XduWP{p^H(^b_510st_nxDv5jEoe2S3SjTV7j`<- z`H*b=l?FF)s~^9oL3j?U=?|K|MqPkds{U83-Eq(_nw@{p21VtfUE~rP6yql(f4Yuu z68iel{nLQX$W0Z~_Ae8qKw2|S>OXg_Y5t=MP=_OZ_%w^v9@F5Gcm`(Eb(j+R>U=+4 zHOws6&N$t!jQ^d8<)>nz6JK?w}9J@4a)5rPK0k3aIj@=9%zA*UU!qc#RyJt9QH_h;dv6NvY77{);>Ehc+PA% z!{x=5vv27$<{sc8(#sPfbpfkk5Z;oqLJY(#(s-#sNeG%zX z6IMnlFlmRB*R7dI@p2^=;?4Nvnwsb;dxM;zylhe9={7@8hSRW9d(dpCJGKiuTBv|0 znUd?C?D4xZv`^L+sih{*xLgW`du?Zb%C6K!hMQ`+P8j&&(SMJxvk?2cpE|nI`6I8a zSRF_-1@%W<#9`taR?+eP73k$25b;R9>Aa)3|E{6ih)JGYM6>WT=PLLdw>udFF3?&l~w*MXmL z1glndG(*#f+N*w2V@2~^`oZNd6iig~9-k=4-DL?u@37$S1pP=5>Fj-WeGm(8!>U#W zGP;^^Lfx`uURb{1j{<8O^A>xG?w@YX)W{)Qk;qssA+=8tG4sS?EhmY-52<5Ue1HGJ z%>0%A97pnA@u??jXPwYg^z3cqVW~TP?Rc;ho9^L<+m2CT65ZCTlyA~OmLC-m#2e)! ze%Fr@&Vg{@A4S^S!;g*~2c*?k(p{9<4=&twBmjmVA;6O#7;Rj*HFId{W8(1(=|+#m zPanTo8D^@2sC^3Z3QJ>qdw#JDt#9zeHAm zS@A3@ZazUUN+I*jJ35dCl_zwcF%yPm-!cy*&7tH3G}i@R?F$fw-b);Zc25z!^Nb~F z!mC?$8U0VEIqp6IjuFPG3h|bH(2=t7zut_LLIga-n3I*hhk}TeyY1pr-X^@|CT;qN zOIqtRcM#GH&Lgez-M5!%HYl&m{I4=3_apzF>DZIwdx_ZUNPS76bQuZEOr9?%TkxqY|;MPG$$evdh{D%-v@t2}(y|drG;NTLMVKyCfeqHdegzUbI ztmfoeAz#MY-WW{`o4S`KBt-NL&EH^R9GK-CHte~Vc9(NJ8lY@Ous@215F`1@K{hi* z&g`a$w<>2@)tf0%O=zU3>y3YBh>Mdw+z!udIfi&Xg}FyMF+%c!2s8^@oodH=cSDQ0ViN$ z|BoHui7LLFHPHfs#C8}q1(BT{+3&4fJRbt8!`T2f2&dU*>lP?f+r<~=2E#6@Yc*@Z zjq#zY94TOS~uCd|IC^m#>7;Mq{^@Qr2w1wch6BtFzUH#VzNP)-x`da4kdj~(Mqtp z%<{sEc`Oq6okZ*810%Ikq>Q!q24DDu$g_ZVIk}qhKJWTf&g;~qVgcOHd}MCi%X~dz zSC*?=s=hm%X8w<@GO<>5Isv0UG%U{Ts-4w0+>YLOW7!+kDWmI?rFiAjjcXkNHUeJD zdzo1)j-OxJx-9>DnB#7vu|JB}U244N0UfpU8MXnyh_`z1Xh1$FM3rx6tOg6Yfm~18 z`Hbt+@3YTzDF%RW?pQwmI!n+vBlLm9Pf+6%f*6##s64-8p)G>dEtJjEdj}b2!Jy1v zYzkZ~F|iDzhfgm)jZe~kme)CEU2UlK1`9VozK)V%gCv2SRp=+>p%JxBQ;cLgOeMqf zn6L{V&sHLCLxf;M?+mjt(#e{LE=Z~rR;u|(KN6$cNZX?1{=8Hx(fV6j8lJPPr9g%Z zE>$HBpD^89{Yfz0pLs7mdlMnWW4)m|**s&G$Hn*FHDl~rtrjuzI-s8UgGshx!THwC z69-h@PWgxcDCYL@2>38*Re@SNdgrT&Inw5w)s9psBRUjQ^1QtRm1YSc! zMJip@qf$hR4)hDk-6-mztDD2kDK}|8d^!0l?*lIdGwXHDLW*z)1v9(OBU~JZzzc^+{m2RvEBjGO9LA};07SEirr0jnVIgFf|DW{1%AI~HM5GwJdyE9h zk7}feDD`{nndfYf~6GcNw;@x0L*yMYx`XC+-5>p7`_L`4uZuiYTe zQl<=SV$TIbJh`rU=mdcFUUZj%JT4Ou(3a+&_p>XYKw=@zy1M`35ANzL)I=lO?d5>a z*(-vh_jp9RQ&2c@_GUAFDkyyQl{JAOi6deWqDhV~WEz}Nu2i$eoWbod+*^*7`~iLJ zWuzlr?ZD!@Ned_!()gnAg)1&oQ!PGDf(<=bRPl1LDI_Vlxv`e#r1ALW;1YS)y`3j* zJQLbqRbX(fAij#14gzxKjJP^d^3IkbJ-LJj04vDV=gpmx+rMY_0#L{e@lpB6D^S}W z4R_~7|ASB7-6IK6zS!=X{iH#ueZzrLhGj+e`z@CiEYv#4*bq`SO{Js&~a| zYnDT$g~}xVYWi3gN}ic_HSqbgxVgG5mo0W;ynaFfxenQU^M2k^($NA!hw-LL639Q3cuSb_la2iSuoDIMJ_v4;%} z(y9w+@k*HgsU9n?c$$4Z=&V)`%^1aIf5%!a$J*wjkI#f*=WQHV)WI5$0Ulf)rNIdb zzClf5e7=EwOS2&zP|O*DYMMmv6`w=AHHqQ-N;QrqM^#;rt6oS$ zdA61Pg&BhFwu*7aH2PKb8us6%@|ObCSEA=jei6{3cQtX)89I}z0i4}t8>KLku6cSV z6t#Nu2j3I07)Rsrf!N)RGGXPTsU)_kp%1XXEj^nrc(rHg$CBWG%*yK@F;T#-1{Hs^v8Xc(nmhn-S-xd8^dh+Rv*AZ2vR98#)E7>CJ{n^)NPH{9FzkiJ+vn+r@$oizz$Pq5TV_W(t$0 z{MD$$ZSljy$^c`6O~DzqPHiTDz7Q03up+JIdM_?MU(Ryvl`M%sJ-DI|=h8&n&|R`o8bB!)?~_v}yt6M*#B1W10Yr&z@!#@mhawPw zMTfiSt4NlyL@59J>DrJ2nwC96T%)`vv14ix>KV-rQO_+?^go{YK2YoDO<^Fwr>B;F z+2%J<00t8GU8bwRM72t*m^Y`A@)L|IKAsFuOcI*=e56RO{`oxq#`2wEZkitv_37f( zG@t7vBprA{qi7mS(#7eck(U`z_<*7IkrFvU2Lnvr&TD&HjtDk+1C|!ZY06wLs_H3k zKp#K!Q6lp|xj;DF0TQt`!Ff^Gr|dz@1R+V1t}e(;EJBmb0|PY30sGq&lc%*_LVRWpn^QLuzDF z+%>S`D>*c7%Zlsn=hL$+`k)95Ruh{~295v_EJ`T7b089{m5y(`OM-xczQ|U?0P;dC zL?#qas5Xny{euWt;;I%=_@2mmp#OvSvArfrxMkVvDXWPLS;sML?mj1B^HN;9bA9@s zCRo<=n=ktBLQuIykZF?3=TFu_=Hd6&=zxhfP(D%#Uj5y;5-btebxeZ`@TU}@(8H5D z9uV;BAQa(Fw|Zq^BWl(N0RP%S05Bi&>CI+`aLPbZEmn+G3}{_Xjru2#H&YBd0LC}3 zc>EHnDKdrSs8 zqUw!bgMytdQdMuWEo>6-+TT@)mHYxp)%@BH+2<(Fsp9gC9C1N~vA!in*eK%_M40hI z&5?ym1639Bu^{XoasL?O)`vtAM1wVW^?n#syin-K>73(mezqFT9oGb(QMtJbh87t$ z4&98{Bk238#^10D@)3-qm1L675K7Hu}zWD;E6Xd`;fqL&>l=$ZPO zULsJ+e+?|6`-~0X4DPS$hGXdmAhbaZP(%xuXX8JLCcYnHV!eug^Lt-`Ax;QB*N<>9 zr!-07N9R48Pih+@26H`GDO|03W@lf>_WH|BI)9J|bI@-IHvB*m5NW<#d}G1j9|c9@ ztHP(Cj+o7jZR~z7*vHM5y;t;bUDXG$c=207OK)+R!9f zh(YObnQx7t?ZrB^U+NobQlVvs>Zc|B?tY-IM|1K~OEcgs!CGBlOZGn<(4z1b46z8L zW(R&zu8Ijnr^>h~kzx3n8?uVOr)0H$D>17e3v`kKF=HS$JrGY#@ZJ~8~GIh3BmwOf&}p)(Mn-7_(yU3l6g|& z{ODG37f6BgJKG|U(--W@3kvA3!=FDMNgG{}s|Jg-{&?=8`)MiYIYBEv^V&7GXO3w1 z0i)K3QI=UCj(Xf_F>7Pt=N>D!3WE06n{CrUnq84A+A}A@5%i-_pDk4oKyg*SYuyXC zjRWA?z)#(T)hd*1E|Xk!Daj#^o`r9pBWT1M5Wl3dPy=);0LcqzOerFZBV9_eRz#g# z3nV~}e}Fj1`N@wMDf0VNAJLwwPrnHt4U~KhWmp;_612-zhq#Xprd7>AYLQ9@_90xy%&iM?SAHE=JEB>BTCATpKZlVOk*%qfmc$N zRm$NTr#u~-_C#33H!x)G;G8s z+7O4;nNC}O~Z zjpUa>6o_a!xi-ueEphnZJnPxJX)7L#loGB0n;^&05WFT2uPMYWpDxjkr}TmKhBhu% zB;TOnd&z+TC7j}UU4W+acP2Z4DoM`Tgl>5Q=H$$%l{40Pm7C+D+zw5;;i-%a-JyPhk91>P~j!wXO`!~$Mlcc8HlRXH6t4>}Qq`~BMp zyRjzm_sPlFab=7N<%|na_oc0ycY3u3eXKE%ASyAz;u69UEeo@mmnCM$eEt6DVs{+VUvgLM3p_9W#;bn}K zC&}>&>mhQYB1nIMlRc$O5_JB}{xm;5^K)BGNW@_H6KR6shJ6u{v`c zlU*#66KwXU?mtZ362wN+uEmXPcka5*FC!=UZYl_f;X~p1Vx2;wFMHFWMo6_M^q#&jY4ZN}$F!@=OOJt}E&*NL2c{GqdB1u)_WvN*rGUux(dn;x;v zs6Tz$nw4#@ZrSY(h+GDnJ}6(p)Bd6!kyG+eJF5KyfB zf!(mV<>5FOyl7j%zqodhww17pjUuG|7*mXWt${3`5qUVp#EM`snN%1%=*CrA+o1Z? z!`4wu)1bo)7nD+ocKB7Jd3Z2L0)WYq1B;7d=q)d4YtZJT+MKs2dz{9G`~^cD{!LCc4@oBLnbJc|xV7K*jM>#s+*X zP;mZ5*HYc6tQlhkZpuT=+|<$5%xLbu-Tx+G+>i2pa|(s@1jhPEx&CtGvV$~7A6fJ) zffQ}f7|C5E9zE3U>T0`j6dR4rfs8oxrzFj^ZkErz(8G@{XIc^ZP^Dr*q8#&r@w7TchH!V#=$`tWG%no7*el4A&}9#OeOp4Oj=Y@210_5X zRV;w&N7v(q-zA;jW!Gam(ZitTW5t4PhJ(YrZM6rrzW7?m%1f@0bpdeu6>jL%1N!x& z5On2JVCQcgcfRgv_{G(}4nBBhg+~bo0En0SyAy@|>CF%;>Ea9cvFH8UtZMnN7QQ4U z=cf>O^qBI*kLFdWv8;-QU-b30S3#Y410-|%#<>vJR$93%g0ODFx~he@$1 zBdvn8^!(-|2QzEm#7LNY#=U3jq+)#bRvYVjk6~_#v0a^mP1VLquKR%$(B3++q!un= ztf>i#PKunLIuBvr=hcb}JXpu+Lf>R#!f=CE>7~M95LO&H`dZH_=YY7Fv z^Z9E)6|;i9r>eQRnt_?FqO5@*hl;woykUGfeIgi|4RQI*`k}15+c6-ZmN$-_p1QaK zN?qAlmS=tPtld%`~yX7hn z@XM$`<-W&vA+e6SlyI|VJBbz}$Lauuut4#~ke2$IN`~1!m5mvdFCYN&LEz0n_ZB_Q zRZtejY@h7EzuF5^IVNXxW_#?lmk3uuhu9OG_YWgByvSoxuC=wh(ISnuHsOx;)#5(t zz@|uv>L&>oWh?1LrB;1gpUb;)ASB>;LCl+W#G&8DoX}Ot`P8L?l@()|9ztLIY7Bo4a{!+ z1Id2VFv*~ENdY-%-Ta~0*RHWNf!ZqAu zNk6x8z8;RvBg&$q!Q9sug4{hkT-`lA?{AP-DNc_samdIXT+N=t|S-Q7NUqnIQBZmvC@?w{oCM!aNk zn_uBb_nH8rRpq6axRa>l&8MzT1bsgkl-M}X96R)nOi7h&pACu%sxxtS78gFM`kt!F ztcqK%QcA(r!V%Sm+DyEU#C1K3;5=+c$#@!C7?@qp7v%N8&qMM;PJk6?(9M#ggk6sjI8C4ylvS0I=okMD7cdZ zObMwiiJ>_2+mE4U}-sm{Lr@j%J{(P_*w*%xhWn^Xz~~3K|Xrx1GL&L6=0o znKOKJE^H2aH6}6E#=>-@M9EQOBQBF*6uY{H8%T&VU#@s`Y)ri}`Q-aVVuvS{0dQ_TgIJb^~xW$@>*z7QOsFp)`^rZecbe>UvYDYZNP zDo@L|jXsJm$(Am2Y&EPz3e3r@noODwL>>mTSz7CJ+j}_0#g&MF!dj=uK~-#7(@1!1 za+N-$(U;HJ!pW(7#VUX(#$|vgpa?xxuUtL+qRbSl^Pb6+OK}8UNfYqs3^)r=gdM9K+8G|CA8Jqi1n{C>Q2bNY&6BFQT*Yj!Uv=aq;UN-qxg^L>@`TwDT=wg#oL8X!K-MGp$8T)e+OCSX9oy3$Eu z__8?8-n2@&y&AvJqaN#z;!i&}LqO(o7PEIF_4wrLOa5FL1!<^0vP(;Pp9Ql&f9iw} zZx53i_-Xlq2#@;cRV&g3+#jF2ACskD`NrKhajPytZTk3HZXR)%F+jjymLb4^m!?dX z_q5&j^s>?)SK3K(3v^`N@D=pBofWIr?*1Gp9lbNnC@d55W9Zw6l#M(xc}&T0!_7)( zAs2*gN_ciIy*HO$)WDFAxtzP_(Af9X*>Y7}k4LPl)M)CE6MloCvZ%h$YlVw@WND+M z#*fye^GSB=?Zd;*4u^XVYn1R4px_5BfWg$pQX0~Q(^-7|xt#UUSNpT&eAv{fB{V)5 zl#`HF#Zd4jjCkRzSrO(EK)YE&SQU=!Z3uu0fF6;tH8*aI@TSlKXEkJiC0(IYpjW9^ zJQ8Y{q3NS%@OW#0IC-Y6X56dx5JNFLfBw+jRr0?;0Ue?oxrLFccxzJs@Zl#&fQ z!ICDgDf7*DW8vs{cW?kgmXiX&429G+NP`^M;j;51ytO+#*yQ%9GI=A^;yq#v5gqo} zXhF;XVIxjVcTGrlN$4Y>(DBaN)}o{qClv;?C3mAx^^LpcSLD?~t1qgIM0Rgta$4yq zH@5=udO*oXc<7!3Y?y?a_F@HV?bQ4N-jj|=%4{Pv+!%Z$8>wi0nu8D~)xRwV8yv|X z{~}YKE$Dr*(u9$~P(ifhD|?toh)nH_<$^lTSEVyQMydeqB~&Qhp_jitNz%oP=JsmUiN&^-Mm^6yEP??q}l1)Bi@t ztrN=Lo@yvDjO=z9feDym7!+PsJOR+t3$(ZoGl1^FPig##6rsXX)`~%d%mBe)P)@~2 zQ&&Vp2(s6396dM1g4h|&W2#V9&0)~hpbd{EYf}1?wx`p-wW)iqciPY}%fZ474+rlH z$k@b`6WXp3uA|2ocH)nrVnHX6jO;b;qs9av#e778+vf=R(QAzx0-Hi5UGj~|oZ9;Z z37!@I1bqnsuvzGg8m6}*@=YM1!}pCg5uDaPR5hdm0~jU|#MWEU5p=Jx-K!1<6S2Xe zSn#C<{rdH1v}0zlwQ3MOUNB<7yrPP++D)VV#P)=gKcTu0%7fybbAr-6xUx90xcFLK zgX&|t(@hJ@C*q8{!H=7982T*YFFgTWR~Hl5wC|hj{@$HW*Xuh_xt@cGz-sSc20DBx z@BzVH!k~($h!@y*dpDv1oZ#ui>jf@)0zDtk#}M@|^I6&61J2H}BF80KOBq&ICPgZ# ztD46+nhZCEf-R0YoQ})QaemqpjJKj#=pr;gZv|_JYm68_do+VWG%;t_FxJd7pE<|> z{JxmxrNQXT6h3@1l@D<03L=fE_=Yz56STv=`|Ay~^L6)^a7Sf*nNf0;cJ7ak+UET7 zKR%pVvuP%HmRR~&s(;H*eHl;m+8*2?9+w9PLm80372ns3fiZ0rBjExgpx~=1nSVCN zVm=!O+eBTRu&$o}@84I(7SG#fXXkNNF(owqaxa%S646mK(pbfQVOKg)h>zg!`gvWz zOM$|(OT!-G+L0-llwSjLBonr*-fdLoe$FnKBG>9iGPiS-vP-#Bh zRoo}h`FLi@!a_nq(r?UJ6wrs@`R@Vi#v@bhR#dI7OOh zvj4~ndVuHqCtXLsK+w+V(x=ZktIPVGJ}cg@LLYua{QX=0v-J7JccaJa{UE`rF2L>R z&D)|lqplWVOpJ3$tojpgJvDVbe|H6aUEvN$e6#IvP%8uM-*&yXyt7%2(q>qzHP7@ACHmZ1Q$9o7g9FkuY+X}v02ySle-75>umFdP!AxqLs-xPuK zrmQ}9`>1NG2y`7YRv0suFf$6Aj5U*LOzQHJU&Nex7r!XycXz^o#nyoFfbL;MOZ9F+ z_69isSM3ylMzAvcOiz(MCq}bX=e5_XWe5P!DgyI>!fE_^1_Z9R!U1>zyk%8<|EU@E z1*OaNE(8B&1RM&S{hvIyf-&apGSlINbN`+QlR18#^KV~e|4!+^U1iTh#o-VJJ{tJe zLj#$V2OO;ry1vpQztDf+2>!be)^49;Ixcy8z{8&+vLO+Fr$TXEpy2v?xi*XVR~*~!1+n^Q}3 ze-*T}Is^p*8>!6xFcS9>w6@Z;{H@~5+QYo7i>mr zVUaf1058v+Wou$u>{OAED$c^hd}3<@_t|3m$Q?ZM+>!hvc;!dK;M&1x-z)(Kffiq6 ziA$%~`PcY_ZnxdnlQVA>ZGyV+j?U_J@UWabHBp?znA})J<;PSg?n76XmlW!CFgL2m zX~^m5Aic4LNEI`}{|PP&&kqkL%|oaB0wqHvEA{SPVe7D>ve(sAT~J`hQL8fhGMto6 zN+3dZ8LEc9YRBhQWeMtY-e~IR+6@d(+kQb1U!9VW4?8EpPS#h`|GxQc-CI1agq?$7 zOifc$TT>0OlUP5rnpv`(nB?^Fo>W!cghmSM#&rg(D8C;rPW%!0a=5&Dc$-sCP$XF3 zrFsmB@Is;3WbW{K>B(L9}*Tdqo1XwvxsSyR^YYAyW_EP$Cq|XE;{Cm zYe(I<##SmF0|w2ucS2=Zz671}KQgzO5|FipntU35mw}FMc~^Q-t`@kD4iU5-2E#YZ z3dGDXT)l{sc}w1}Z~X@g)h&k{1@*PH95t+BJ}>SU$IwZo0a@{P4)!%Dh_&A!f_MpB8@^CvT z765_96AjzluiuW{h7$bwmX@biRkd<*hD~O|yw0)kml===ni?9Cl9N}O`~);*sCZj~ z%=RhEtEeVT)tPX)@mZLHi%jTf>1eG9n{oGG!&4bd=gs8?vquNBPhLIGv1KEl!hamL z-O=&7f0^lN7i$SCSb*KT5tlhc!hEM}?2!3l-WNg zOIoVSYs(X2j1qHH#I4O^Q*!*Yy>4T|gcf@~yWUI5{-)7R`r-O;=cPRIILeCtuP%1D zK6f;s4z-=suzgy^NFMb z8@>`y_=E#5cSQj}ssVnGhJ?&OjyRU= zJu0Tb@BGt#i*o86PZIG90D*B^Mbd5OSsnVY&yJp+=dFi^^cSH96-U$N9iN@#<`wjQ zQ-$48HH?a*PTp-AB@>o#@y1pRmM&8LT$NjOW2@{z&Rd2+m7kn#VPZlZq8m%B^yktWfa7r&&+>YTzzE-@V^G)fMWkv-|SF`FOhV-2h1;Ks=3 zPt5U*6QpM-qbR%vLK1z0aI1E zA9-og0h-d^Bx0LV;!5*cO7nCzeq83QZW_HDWb*I^3@L4b=0-Fc-7;BH!MN0{<;2pb~#2r3&uDwq{LFkD{I=45uC*=AKJUeYn`@ z*ZQ_FwG~y88Ou3Bt6s}gg-oJv5>H!VqZ8~L91!={qG+8*TLkT zt@ItjK#bSDcNcD6B3f8Fnh8}+&3)&>kHW~P2+-k_*M~El4Tff?f?tu0A{~J+RRi7dB{gglG9Z zf`(bJYA}8=zQCGXu-L)8vZic@02NSJ)?8Ft)-IVhmXwjArVV#u6joi;r>1`3s(I`l zU6i!(^px08M2=bCA!ys?X!v}0c{{N<=48a`)MdEt-_`hR>2tb%bFjMqc$rRl-_!Eu zg7cjf?jGa9r{@EE`bH0)97F&`U;Mo%chmoK+p{Tt1uz&66#7_C4(V)ZZoUc<6FkRH z{yXC}?H+wM=@jEc>Zwv~D)eJ4)4OUZqUy7>Gijg3xuhm(-_k=7a%-?swRpM*hD?7)dQC+)?Z^7-ItQ zqmNAXizrGem%;~Gv-CDQ``WYRc&Xv4eAI_~1zgKi}jJogcdoIPg{TmvfzR|1w9<$%=qYqlU+>B9;TkI0QSLn~w&YPh zeq?82Q`0iJTyBC^dEFh(k5^V^`XkyPFQ>$chWLNrU}(P3rGTWpy+3)o=;#_Q>j04f z#tt5VcBkk2ECjl&J{2fZI+^TjZVzu^vMQEN?>@H)`aSQS?}tW#&)3iaF(7b1Cx+l( z!RLUNtH0(zbq6nxz@Kd*_Lq*CNcNBU>q_`zb8}J}Qc`kKb99V@RG;$eMpHC3%4V#g zUv|zsc+kQ%FEJ-T6P8I4R3)bt`{`x@L0FiSJ{WUxW|q0eN&Z7Leua7OQo)^;HEE#C z5GLlk`1PTG68JMLP6`U2RW?%5w7neLw0TwWaS?eFgFpI#6E zC}|nzoWK_?t77?Y`|jGmn$oW}3}n#jM6)cqKkt9>ncoic;F3nW{;-c|<(t1I*mm## zuza)bRZp?`_8yX-PW+Tbz3pr+oE|xp90iY@L@7^Qh`ICKA#e0w{&;%#oMoWvt+>Le zv6ewX4K;&c8*{xCJzN!-0)ED53kLO>{AU|_X)`MRgYswDa>7-=RCja+iGE4fC$Ng$v9e7_4FJUc34AGUe8+Ls!W?hgH~uC{ zrb>6ze@}mZy12)d?(3wX)xuN91u>{aN>QVqzyW3oBKt$b(#2i*KH=>TKwW7^c25_V z?V@QaLzoNE4NtUvqH+uj{<*X)-7M=skmi`1ibE7IGAv>`;yKp>#b_Do~qsPd#?R&%#}l>XlyI$2EBaUH3c zu8>co&(*K^hBRXBbrwp>rsh924J{p&26@$GlnfJ^nhUCCcFs#DC-&?rnljn8ra!$7 z?y!XPC0iTc@_On5UhYojZ`&ud$Ml`@VW)fU(a%`)FSRzD0ylz>5D6&Sv;YY9T?S8- zP;`ut20A@b! zf~;p|hd54iGq+xh7LtM%>PCib$J>?c4mYbz}-y(!5W|Ov?6*LKKe~lak7IQG#Uxds|FjqLc_Sv!Nwlg z@#pPgqPje$i6!PS_yY0urmt&1tn*goqK+5S88kzy=0WU~LQ_J%~ z@4Noktx99l3@E2i57!0$yORB8cR&O>#fJam#qrI~VAFofe7k@X|A8e%vV4%BXH;Z# zq3V>RuFguGh+p98q<+ul?}ytKik=?d{n50TO+#TIc=0cf311t{5wOUy8^f|AjJaiRt9db^foUs89nvalw`hUFZAkjGza1+TVm9@3ZeJ@ zu$;x7K=0Siq6-9grQwZbq6(m$Hin-zhOCN_KmkCYhw`$}Ss(H6)(Tzpx6eUF%DIc- zL1b4aYpzJh?J4YyT?mRTO*FCDSax4iv>)Q?<)-kf?|ELp zAq+2CAB!(8iV6A2cYE70B(lRDOD2r6@*D-xd_(#Au1*4#_-}}CA-Uq($iE$-&Wkpt zh_Q<8*;o4?RgmDd&G;t=w;&FDm}?`MFz_KV>P{2PRV&fe;dB820A1IGvM*MsN1;o* zUfcj7J4Arz!oL>^gdkMRJRHhaE3mx^?8I@-3e=Zp%Y>y>g^0hXgmwjqrA-$65QKp* z2TKR2hjpoc5J{2l!jbmBqQu#!G5SI$zJiceB1=WX3Dz0e(m38i^|o_?Xc+bY0C%yx zXmL68llV7Q3JB<5;6lPJM-hXL3Ro|4pi}2?&~xtdR_|W2t*rJW2*e5PnAaClv(&TJ z|D^8MC{&m(-P^N4O^1)lPBc8)A(Eh#=ibM2_D&8LtS|l@Qr#CUdC+sU_Q&6jL@1L` z0v=)an1r6*%9IvKiaJcr4E|ygDe7zQ|L}B<;c<82)}Po$F3Tb+7eX2QtpsYT~(w*7&<^7 z&?rHc_{$xiPLVh-Il8yL-bz71$GO5uCL{2>YfOFnp_egfryEet#-**dxHhk_F}1ZB zR(f-0!oH)qshz#BpEAUlh)soLRXZ&K>#)3X3i@6lM5dU|x&h_7V}-<3K-@(DgE~$` z#7P7T-rGV_5;O02l6Hdj_ingw?iTJe%dnS}v4`qKt2euNWslSo39okCS>*PYmE#tR zh{q$CFA^Q^-I+9DZ==xOSMi9ed$*KyocQ?Qq91{}@VvM<$WR0gYS>uV`$RehnpqQi zRvbEssMN^B#yVI6<`%CnEd$J`(m}I$5i~*NIg^Vhh{{1`x64o*9_ptIU!MXIO+=^w zL3fLt!(+vEKPIK(R~7SYiG`}HY=`$<4E=kWC+Q~$^s5L9kpa}`)Fp864?!kB_fMkk!4C3ai%gs=2gMK|dLySyhUYG6FZkq>o}$M&xcrF+k>p5x2* z?>eA^od$xwC^Kh~0CjuC{46)T%u}-J%ToJ;S$0ox+3KQOck-~fVUt1vObqbAiil2d zgk|;pewyctQU8uN*wo^3cM}%YE&t$^etI({*a_VGym3?hi;H7!%0~OO(0^j$N}tEk zvCkj8K$(BrIJgS^K~Qzo`{RWSgH>iX`d12Wy1j!VxQ(s8mf5j}rA{Ch_;_w+8i4A} zAP1gP$iuOvL+r#U7MHDNK|McCM@jpE?$;5MU{)5B`KQOl)cK*b74_RDLAPzxa1Rj# zKeSot}YbJvcNC2B#*+&Uxt_h$ZN?18#I_${n z;d*GNu^)rJB;1|X&l+~T0mE*X4LiKwjvDWb`}p}MZbW~5rL0tgXTwgES#E4Vth7dQ zB8arXN2qkn>vKLBeTwD@-~(=Y(P-k7Ji2>qeLylAZrN`O5(^g4lf49?=NCA`S;f!9 zWi3nZ8VfJtT-!3j{`xa6SW_TG+b`78!PeBkR#x)0tf8o<^JHTgtA2%~$EX)%e|*!L z+Mma?qumZ9(f= zR6r-f0j@yPhvm?NxQ(%FK`m>)<=B7)+X^8bI>s#U)_>r7AXEC^0hHFYKAsHeJPbD% zNTWvowv6Vn;D`#+DfU8gn1BWGWRW+XC%?K6o2ySo;H7Xjgg6Qyl9gIz4;HNyV(<9Vs%{unul=@1W)5Nb+XQh%S;)c>pZD2 z>%qa$Szvr70QTsi{9-K5<{aOKFuPSDpXG!U8lb}GU19I++YK(tfZkKa35L7L zh6E(2sU3oEXms?DVa!ZK`)^d5-z;#z&M|vU3sh~R%-8{$-_+(^9siPoy)9T9y+imS z^o=xTOsj`XzM}(PavvYhx z^}&?I@K_PW&MAAZh#ciI(1guEDG3#nB?jE=uo4M$pDx8Ne zD7?6?m7(00Pt#5|K~*Tz$Yr-C)@?-dUAbwdIU}XL0S8TlrNB;mQHzlOL>z{ zsGx$T&wrGv*l3ViVTMm<#J@l5G5`P|YUgcpL*D#qFv2DVbA^ggHIq2;jGdrmJ8*V`*zq_JZv(&+v6y(f{$!za)YRYNr<&+*14Sbyh z!mXa1-h8}GrgB&*13%wet?a5F+?pShN%Dlf-rgs_P>%oH?)DlUk?6e0X-q6^uQ!Hx z>hJ2g_4D8VxAF0?3`Y4@w`rw0LzBgBlfMV8Y{yCzDdqCDcRW7EZ?@MNf{r8d!K!(; zJQ%<7w4O|(M9eQRzq`1pV`!W)ZMpCaVILIv>uUYj+-msycrd6uv$t4T0n;#(hGLdl zow8BnrC5cMGKmb8X24W~GAVp$jtvi%Ak}u7movP7`x#$fiAZRGBvgosN?cR4YVeRKZQ}XF-&NsG) z>C8~D*@hD1k2yO^*nmkRrKTZN|Hnnf$$UoJe9*=7j5t>RhwJC4a{1p6Kjv=>*&`{g zPY;dvk8O94p7-}|4`|Qu$ag5QEpDFmbrbqNx7)F9y@Q@zzqY$;40?x<2t)2K$fL5! zqqCpWxv5fk%r#Pgx7(HF5A8;Rz3p9oUS`0Zw*})_?iJff#6b=U21ytInS3$(Ij0Yw zqO4X{Z55{We8LJJp7AE(?tpUbUsGBa@H9V&#G-M&#Fw(powF^JwJe1E56~heWwM6_ z2QaZdHChtN(0PFY5PTZHg#Kvjh8)P-fKLU8@(}t$OAYk`07+TC?P#B0w|D1ow9$y4 zL;2gUgJCLzK%~%=GDspuCMuYFldpl!z1vTOn(Md-m4N^#0P_F8!2k0q>Vm2nn(f$u z4|gDU%hfgvydwa>2NJ#p0F5%J-YJ-$3{X*K)qsCAMwkl(u<9=HBS47Enm-+l|M|(O zC|F$8c=!(p7Y$o32U{Lp_?AzH{tpQD9gaZ&tno8jl>!Zyc+?jHE9}oy&ga0Unu<@j zgn0b6#}g1 z7ol1jpmq%3SSe)O=yyW9%&9-v~Y3j>Sh#Rq)ZB&)LaeBC4TkiYZvq@ z%OnJT_iG8u3{ciKQwge0Z_f@+%p}mBoZOU`jSCk4b*qt4<*KGYkQp*;%BBOGU2OW@ z;b?Dyt*NM4W6l~IH!`7=?I?p@0R~343mZ0~R9=3Omh&6F53IQ8?jOo(R(`5)J#F9? zI(v|W@p?MLo#avIH4k?M+zBquY;5F_zXnZ<$cNMp%$}tq zC`R^0lo6t%&IvMLeo`Su%4?vJ)Da77v-v@?iv0Ui+0@7(Sxn;^p)9d_UrnvFG@au} zC~RtbSTl3z`}VICCryL1eYK^<2?`KjTvJ(BG_Ag>rLC%-(#*d6b~kaS4C?a+y53zg zRJ2(=Y)`CgT95(3Mp==&{#`w==WPH`J=f>|uzf$)t|ERbtS=uzIq>nrTI_779F4)r zXgcrn*-yr^vP!+9&dXOqHc)9*H9yBvvRp>DTLtHZ7bl)qGoF_WxV(KR+F174EmqYd_PAq|K?m+(t5`i-`nz2h1p{hExcP!Y57SG!?J(fHcqv^k9(sVZ-=q5G?$lX>FIwNS+@1{{9d1@n`>WgjC#DeLFUiL4^P651{8;P zdKdPFicc*^KN}mt&|NLizt;dC7e@~mcGS%^9q(uNXJB@0wXnZ*x|KOjdWB2N$Zr!J z#=E^K?QDI}PCw}NrvJvU`}6XcwBDe{@9v|M<5Ve+mtAmYU1L$#82<|Vgy!z^R8AHW>X2ue$mk z+g$SHFZqBfHlt~vp06j?T>Xc;3>;cXJBqo;1!(dv@YGs}5;*3@Cyf;J_a>X}gp?5) zkJXvC+=;K$p`*j@ac&&TN{NK;hy6i2DGT8xVd1=vKsdmN(_BNNW(ezr2kpiw|JNmf zLsnjg_xWpmdc07d%iWwwadK>3US^-0b3<-@KbZbtW%A3)q`_DxrL|bz%L@2mY`n|6 zeQZ+_g}Gs|e?bf;V`XS#X)U4aF7))*eCunXs;oIU7)fSuI+E%mS2bMk@*pY}3Gted<)D|6B5WaWO=8ztw zW6g~IE6xD`plo;`^t8JEpS!#pKqdnj6C8alD)KF)IZzbS#I+k59(w6y66E)6EZ}|X zcE}P~Rp8WwZt$Xj{iuZdP>%FZ1!>@47Toum^eQlL7{)9tNc@2}}+HCR2r~ z|APYevyXWoE3~38=~>NuxkF1sAz>y7N`lI-2EBvd-6COP!Gt1GKE1`+>E+4*RAp6- z%q-H)G>#Rww47!@m24Q$cK zY-@W4bF3i?E9>)9(&9$&dxF`KoD2xw@NMTlgeqSLepYs>(D(M07U?C(_C5 zPEQZAQBf;kG6X~U!b_(Vv1u%OIBY`+44HX2Tpej@$eNQw$Z@J1;b>?qKT?*aaJ3*G zW2ZEFlgCnzCz#5pm8NR);|I@$QOJ23|Z9@;xs1wCV%2J*c1qrDH8H^65-<)Ubz=hKwM9VKB6W8YP z8gu*g_&u7hpWQ7qCc{vSJxD8$EZs4T#&Z$#d70eTl!n4-haMiEW~-{{?JVhSFO43% z>LTlsNJ~nKE9x5>rcx2&T(G^Iy(oifdVjRuexj7T^XxJqEP*CgPNE7ROkmVNH-$>Z zgMIfdcKe4b2P-G{D=P>6q*|bLy=^}Z(Ck=h;HS^$?0al28cW@FXP%Dgv_~vAA_G!= z_Ma=^LvXm|x+~w}%lMPR{=bqc9~u{bwI#u1E&;6IH*Jq-b(d&uH(3ogMab0)BLuy^ zN@`OW5}T);b4|qv=HJVArPEujelLXK7V9+H)UBkCECK*4{j0Qj_UNg$xcY&MHNpr> zTK=DU*DUlT!lYV@P8fzJ1c}ldccM0Y6Khhmon;jr<#KvbjRuRnU%%O!!gM8$5GZ|} z$A`HQ`fTp%Gt$*IJGBKpweMbJ>K);vO5Z3qwY#;gEEf!oB>Z?$o0G9&N2Q>K?6Z99 z^1X{h7&ZfH_wj>XwlC$Q<5#r4tgPVX)y>oj_&0U&f$onN8-q!(3`w+A>zXSedays< zZ&pT|!HmU!t*xa`R`RplX)8RqD_W;*JG~v=cXmO3E2uMyiiRGo4#I}O>)|nFWnA3T z)AYYPK7OZvLm7lWo%gfrXLAMp5B}^Y?$o7S+;0>KpisdS8g`Eiw*P8K=&X$FszTJ@ zHMgy_a!`ietxn>E#0-PEApIIAJ#g#H2L9hj4A99?Vo;Zn$*!oWhTLq1iISs}!?zdw zsyV4E>8g87D{NUQY)d@g)Mt$5*Sc9T$frl5FhFg#BmJ)q&n<}jWK zY6!Esd`z9I(^$=r5caw}eK*yr%4nd?6p<=srZ7}sVwo3! zK{YM`@&l_TsDv;l-raSQI*E2)Gp5?Q`!@Rv0a zS2ts&mkKMtw8rEg`@w_1yPiQ(08tO2rvwyd+rwaU=lRD@L|R!^1kTb<{?<~ON_-i= zibbBvN;CoheFkL9HWYvg8d`8LzZTF&2!MVP-jx2_yby+k40^ui2GCY*wAlqizbm2r zU!F)?`z_cd_%Z*_Smkx*+r+0|cXGI_!0960}6)%W6NQwng1Mmc)jC1!j zHGi95^P49lD|ueEotj_(dwgI8Iy)$f@hqQ~B#Rk8XNEMxK2NC3%%sS|eBSf+^84rD z!r-t)Xv9SL=Pr^00FeAoFqz7q10UzflbJ*)KvYK{tae8Iz?Q-K{30Xs?uVY%7e{-c z{+IK`w=3ga4{R$*-%bhXpVrp*oIZMBAz9CW84^{RJh8HpPAhE%0QmhoQ9uxQ)Z)&V zCqk)yi*4&ICTDI>KqCF~EBc0|CqC7acNZr#0JEfHieCPd3=dN=A!(koF$p;lKEU;HznlvymEs+N+buBkPjlxk(>EKx-XZi+}`9x-7} z74QT40R`Q#D1KBmXWt*9dTJA0*V{74!MAd`FP}oM6IzCMu3AaNb7OPij#!PnhyCN_ z*UgrG|DlhMuS0mjhj)o@bN|@N75n%^Yc4{h(?r%jsHHJfK=lg%-iZ{6y~AT#gT3$g zT_t#8Q;UmiOmtadzsY{@50Mv1;i8&0+7!_$T;FP=17dP$N%?izU3&q>K2y-ogNOSp5C^0bCGH%zW za#q$4a8n36QM|YFw2Qo!mogjtbhB)YvqCLbBrPHnsfws_7Y2n;Nk-=t>95ge!ov^gkmw)5s zwan>tt?83Z$bMpb-dgiz%xCeWA`0e2B3lrfl|9X_=X(<`UN8;!k(Ua896q z?+5qABc;;K@t;P9zW1(X$HU#)cGdFolWx^^^0Pcz`3{Uu0>%N)em=l|3l|$hn>>Wz z%Q}o&76&I-Ud_U3r{jG;KhW~aiE)olZmOnW1e=Yd*gr8sABV$Wb}Vn$XiIF?4;*&17mDEvzV*6)39=ind=bg+e* zl2;)(rjcvzcVy((pFbg@5C5noc2dFg9?Hi0+laihqgc7en7fN015iNcM8N`x{L=0C z1r1i@r1z}B0D#2)z+ll}ab~Q4CcN7JBu0 zx~oTe33z*SdCIPjCmX@|KJ*Unja=Z1k0=>TPbW@&e!oORO+zR(+KdJk$l;Q+-Z*T1 zEp)09*DYZDBRDpsTni3CrlN!c@F@`1=WtcTJ&ZrDW?5YyY57d1?}ENB1QaE=2UV*(66$9+ggn3nWK7D6jgr4T*hT{>>I0_1 z0Jd2Mf}YQ2|C$hs{Dp%31zpsSnFR@588|2~m%H2We~VB!+!*k(Y6{SSwH#lfUO7skBEZ?BbkqP(h|N4`J$RBHJIpyr zDap{**HakA)m*uRhSj%i^q-V~?ND3-A)Iy1nnZazZu|VSfGq zA0J;cEzQm4jgn)>bCj0H`+LV=@Wkz0Xm~)kkSxin2DIl2J zBamZXtN8fHiG!mHO%yDZoMgqIe%>TNOsvhKyt~J$P6+pnO0tC)5(;Zf9{rC59Znor zs1B=3#0e*pOxOJ0ux8B&qnwm9aFFS$Kt*MNZ&Mai6Ox_Y9-VEb>nUce=&9-J?In4U z*mvJ}GPHAFlh{=hxe~Gyb(EI#r)}#jDyCwq#6;U}ScE0w=#0#aNzqM^i4e+AoMcu; zdrU+dE`AvOj+Z_Y`Y}H#L_m&+S(Xx$&6*cIlzhlsKu%sACK6Ly#Y7?uCIQ}>lc3XT zSIABOwBprXm9x$C%KYhd{a%$8N`=p_$NNZU|4-vq;UYq9F;4OrVSLVYhLGLyRpqE@ zw~voyT1pyMt0ot>OD7SP&o>-N7%s`q=d`5w8(eS{zsDfr84XNJd;{G&S|DYeBWS(? zkkPS$p_di~@4_ODknW)D+L7s(==@LJ_rndZkNHB5U0_4ozq(9ea;t;U2RZeZ@pvab z10i6vzGHNf{Lc`7>@kki%k05BCCwLEaG6DAU_G`+!TUBAXK%8Pk*vUtdG7#Y^DTM$ zk#GK%7N`g+e1Cl-7=Lu%$EVj=QrnYm9a`t7`M2LVn-a =W%A&uX|k)T*6y#BeB3 zi&J859Q>%4zU6F;Ayk~XR2?B=wjLks{ zzqX9rZc4J-Ntjrs82*f7%}emald&OB&ukmZsrL31uJ5euh{-GG(ou9-ebJMEXJS+k zD?9^-<)gJ#k8Lh8balTa-Abr_1rN)fNL{U7gZtkN;%t5O?njV}!R~bsgExlv)AMn( z_T?a&OU0$JN9+p&yq)y53=8rUtkE$cNfl15lhaO&Q!E zgp+OXVxVym#tQd%!3neP-alyv0OXLOLBlc!tY#=+{w6(1oJizX{HiQOUrX#bM?VXB zqZb`pLUbTSCY%%p8UPk=EAK6To9nF;L1zFE@_i)px~+65_P zlL2@=y!SRKo0%ANo*lXxzgH(3~Q)>;~ za0eP?gvBYc_8U5w8YL*$(suu{)tkSPXOQ3hKHQuAC7tw>Z^_Wgw4}0%ta>U*(~NBy zVv_?uYC-KUGjlCP@i#+Yr9)^W6BK@{UsjHqj;|^P$XV)AMr-rd69Jt1SFt42fJ
Ax+k~=@ZAq(6DwFrmQ@H*V8i4;2be3Hk)TBY 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%0Dh3(D(n#`SYs@7-WDda2yb|su4&4 z06-&9RYP)R1GT(9r3$?M2iJswwSqc5xHd{S;Y~cBZwZ8Tj~)>F?RCRGIu0uo5*V# z;x+V@OswpKqrBoM5t#+LHXdgLVJ_iu9!Z&YVN{366#EFOT{y)yEXgJ;$u>06Iyk{9 zIL$= z6DEi7D7%PgIYN}pxCEhjnMp$pxdqYA*9RH*E;e@+$4@hh?u|Bdms6fx=^U#+KUSCb z=yF?AUhMr*=0tPROh?(x!MYn47`^oLhf}T3u66d5C*0_(d^6YIRg$nc-uUElYioYU zl-`(uF*;oE_tl{~U#*VVE*LV9@9t_QP=Bz)T`o8sY{ln9ZkB>Lk z7QtM31a1pnUD^gW27tM>vh?NShFflRpAiJOx$;8Mpm|Fy%#s@CfQWMtB(E6S*urgia;CncQ_H|2Br@^F!o$k?#=?3=Qc<}} z5XCz({d{FZK~Zr;m`|jiZBudb^P3}ozrX$E^^MiXGanyKuRNJqd2;#VvnwmluB<)3 z@(DNr40tlL_5=Wc%PWtkS3nmKSOfs_-NVs0_bY4;!T=6|0Si(?wEDa9MWB@dlU}UFl?VQlt(#$wHQDDNnH`1!&8pTB|0Q zlLGZ|K?ayW9jRDL**IGzH*FbnSwUYFNTjK(GZ`l>#PjFxzy0>-pZiXnI>K@07`F%; zzYK>Mfm1?-3!%XwP3FWJvg6I!@Mi2dqZ1OO1E(Rt{}_kZMD}xu9pDr_aOBLszm6Q( zf8^-VQ>Qq1IM0c4i%6b^N%JD{f*1v1tP+%>eLL1o0nL5i`xGPwB zD%kkQ+xyEodgGk};07)n;@H?E>XYTA&GnC;KD}F8f4}*8b#rs|=g;qJtE>0YjqTXdDV7i&4=~QBhY>*HTy0Qd3e> zR?$$!%j2;)tQ!u!>Ynxo|mR{kJR_2vn=9N(f=zhunxew`}fMO*uD7Qbp(MAxiqibs@;o!kAG%>0s!EiUE%gmy6yqMUhDzDUhKuc z7XWHH!)eS&T6+`?U;t(`2ml?iz)5Gaq<`n`dSF2J0}SwM7%12Q%mM(`Lo&UELTB{> zSGTeD{_ZXSZr*JG07v)(%APd~h+5S|r8QA28&WD8K?bO3q*l}e4}h{yt!_-M1)W0a zjFyx#MnGcv#mh4nF5iePs!ptGNM*F7RX3#rzn0dJQdLjyyBL(3hfvk^h)YeOH30w+ zl35&{TNavG5SWq^oPItcyEwL>GCH?3C?(gQniD|H@{CV$2#>Y&4>R!!3Z!IVHH^4~ zBwb@tTw>F$Lz4jMZyl0g860O76lWP6ZxIw{9uQ;UA8F{caIJR@Y*;2mm$&s~IAc^xz6wFgaCmS!F0zNdlt`m67Ka zmp&~5KP@H=B|BEly)&RRNH}JTm?ue^C&;-ZiRpPk^?ZfYTzRC`rDSAAx*3D??AE;4 zJG~8$N15HF)Tx%@$;N_bD;eNTDpgK@^A$%fgE!b^3T>-UDQ_m(`GZMrpB z$}9|9U%v9@X78n@EmyYh`hJWeFew;M`(80Pk#kTKfE9 z>Fe5?wfFC0Q&Ku7rz;1h#r6Fys5OkaM<(%A66RE_L$Z`fxQMzV%-BaR@I1~xE3&92 ztG-V&qRgwX&pIkc*3^v`PKZfLqGV>Aff7WC-n@$5=j08o{ld$edt=HQol{FFRZL0& z%|D77nV1_Io0eK!Wb5fA440E3>hOqT$QDi$H|`qSdh)@wUEFgW?0uQ7HBTPgc=Kf0 z%PZ&z2d})Ag{gx-uc)M*yZ6&~>rv^291wXvl(v|hi4@5kf!99G3$=50U3&cR_3LMI zvy=C4T^YI9pI%U`KsGS6bu@PLKq%?h_(cRJq!`+M zQZcQm?LvRo@NhAW5tp9l6HjpsjSGoSEiA93l@(_u1Q#ayj5p_edOY)Ub?M8Sg_WmQ zSDws%dVYQV#kEg>=zlT0`f_&d`Rw|O*|le2u0Fl8TLb_A;Nv5(2=MXI#QUZ3w-3j5 z0pR8B{uejJv|XjTB3brf_-I@V|A)~U50l{UO;<(NZa|)rfh#ks#kfm zU7VdlUXXrke!y@;+OmSy-6q(na(6Y9hQ8MZ$Gt0@PrEYLa1OWQdw% zs0KVz8x^T79Ysb&k);z2(D8bxC@pw`4mQJ7B}xmCY=Wj3ptEg=6f<0uEok!q0C1BZ?u=ioVcTJY3aF%AI~r4L?TH+o+z)Vq(CAO6cz9!qO1}LucRoe zq=Z*hA*zz(H8oTWb+w@)0t7r};nt0xe}7y1_z_@$PirsUzIhD%hgC5ucu`nYCvQ!^ z6rv|pH<;o;J@1-Y?4DZSkyhZ5QS6ph;+|dtFo1h{u}3C2_medX=$~Pr+2#Lj^YzNE z`tKGn(EO8K;gVVAnpF;@d(K`H@Luczz+UXdzcs?DTEnZ_Sla;FV{1F&YCB?Bs{rD_ zt-#C}S{wLK&HTR#KsD(5r__Mg|B0+wK)X|bSlz(QsVwQgtNwrO0A}6&@4A2}RgH-i z^?+mt005Bw011GzK`R?m=}oEh=9C%$9-5Nr4cYa~jOv!4_{@>ZbHi6}Qc7z9LddLb zNv8v!Y)qv!Qp#$|+WQlW=~!J8_xN;bMPpcYNoZC{SXNsJa z=KhL=8@5jvixp&7Ayc*of}`9d9ezdXU5lNUjVT_4<-Rt zX2(|mHkg08GWGK3^3;phW09$8cb<)BwOl(+@O95^srY-?JS=Gb@psJ$juE9|m6{RiLZ|664 z)02wqq6=J-OFh%e+&Q^+esSB5NNb>N?7SnD^@wUnf`|&jmf?Tn?*|4btTGhi>J#ru z_v`4W`}lhB_2`hJi_3mNF=MURPWdsiK3|LRu=}Wsz7fo@L_@r-Pe@2^ zMJd77B_uknsIo0OIh*PoK(eDd(L=+M(#xuAo9fF8GDDkB#f(4b+L(L3vHW7`iIBq{@vi2&52;I`&z+y!2Rv7``cdkw~pMdy4Q6Akn$xl&Z$gX zG!+@{q#NOch;)R7*=t2OK*JrNQ4X*uduX&1Jl0v8>cmpD!={Vy6>H zfP~{=Or*TOiAoGfmuaLJNq|M-v=Xg!Pq>)ISnGPAG;DPwsYq!*imn3+qI_Ir_s$*L z{@BU0@9-f(kpn{Fd}0a$(po|a+DDX-e5xjgHE~A}WPYfPfR@!kd855z>N|yHw+qSc z5|rmTBK;Sy;I3T9_B2kF8xatkzd4>t1*!m~mjzkIc@xb$f7c}w@1y0$aV$KU<< zy0*5qw7k0f^T(IT&mSysC_w!m6%mj+E~cy~3&?#qL<6p&iqKNmfof{QG!ZaOeONTiMdXbsXaGSoFQ(LX+?~TQ@~EoIOUyL?2}pYPvI|!0h>dD z8UM`s-E8;yZ~K3*tWu9G5CFWgz$C!dJM7ll0)VZxwf;vJc=un^6HqAf4Ijy#h+x(}Q zn+j-7CpV2GBDD>oiz!Y zlFGEIrp&rl&@5Ehm|oG8aH=}DsXMu>-qgX9!Aa*7RfBnejQo)Fyx_Flz_gQrsX4w$ zS*-XB@7PqYs03OB$0az@(Lc;7Fx)91!j>K38WMk0R^zA&)H#e}9~eVsg;QAJR_q8X zRydgnN`JCMyN{J8TS8q&8fJiTrW-rbbttY#8=3*dP0td{ z1LzPPxn3Y!2!^6*N>VYzD;i*w4N&SxGg*j%h?JI`8eCLbPT9Z&LZtLOf2D0nYdCi~ zr>v@|s^!(^spCre&1ddaG@WLJ1jKVV&j$u3-i(}SFS*oFHu>_=aPOtNJuSr<(HH9T zUp>5>6%+9ITI=NCjgw)F*S+Uo-0d!k^S;|z`r_}?edjCs&zJU{DS30R>q>Q6Uw6^m z@a0Q2=?_mAkKU|n$q5`hQ@r&2N>4@H$j$1f7t7!Gc6{t_yIdA}r9AfA)YI|1EqxdA z*XEynS$elJ`)+miHCOtNuTFz^|7){c7ZAV$vt!`!;Q8^@g_nynV_&~aKOGxBQBv~v z%h#;D`lD7sjFR&wuRer(Bq}*2snIfYee+OJrKpHgc>j#Z9ihAy>(8j7-B`rNw6Gyke91mt#S4YFdtD%8My%++CUtGqB;HqnG zFQKNCR#5Qr<2;QSAta|JtziZ?anZ-R7~&mt%}_<<`8RLh$}K6Ug+*e${9K|^@m_uu zMlhX|3&A^jhQ<5Frcm5iEIneg*TuV2n2xFcV}PT1}#7U0F2%EG;;O*)1Eg2XI~F=zkhn}gr{_n8dSR7ajHI0mB<%H$+3AVdAVjSZ!q#vh zTZFJPQrykxI2|S9jg_Ngr0M3;Y_dY2jY_bcT9hk1(+^vdxG?-)z0h;fL3&yJXVpL*nv=eRNIc_HL zR(f7f`# z6vivWJ~(E2b?yIqUH!VYw7$CV?c0~RxhYEv%%9t~9X}=@FDn7jRMXLhXd@tc2rUC0 zsJ;%&KpTeC(*~rx4g#vKrf8rCx3R(}a3W9Uq?MNy+`W5!Y<%eX$l%~m-~Id7&!6k8 zt}4#YNskH(aCNbxSmMkKb~>E+?g^42%h)7RJU z?S1g```7u|iKY1uz&=0oW_9u1!t~g}@k2zl(suHlV+U{&JgsZqEJn%qRgn|8VdA0rl^h2_ClIVYk*60Bo(T^*_3z zYPtach^+34r~-!pa~S~a3lv+^waEaW9f+F&_&0uE|AQ8wP4(Zp*$4XiKi+PxTug?0agyAR!PB%&cvdJu^oWa$-1^6)2m`jb5Th%`3dor$5+ajq;&dcbjYZAn!)*2&A%nW1k@ zL)yCQQ{42es0L&gT}x*jq5~Xn2SHObQC4aumNMF=0`lre3o8ejZ$L;yOGm?nYZp$I zmgJO{UAlJT_Vt@%qa!xfPQbr~Z$M~uebeH~?2X%3K7al&I504`Fn#N0Pi=M4ub)e6 zE1$lte0XrBvm!P6Meo%+7aBV%Gly?b&CXIHA<_jTN9Nq>2>=6*-c!tmM2hizAj z!>-q+eVKgr>{i3jwUTf1&%Z2v{xbQNn*kVGn|ZnZkNO8qK_C^3t;~(C%me$_(#+__ zucf;WZWmQm-x-^5NUIdL3JtEmo^|n_o^O_RKp7^iRF4@C_2B3+(qXpj+{)^Ja0npfY}dh_pq>_S7gAgFx^uNDbTuE=_Bwt z{fi&^7bYGqg3-4GAi+DZ9njpHdvmYu&A$G7=H;E~m$yHTT%UM$`NQz#$?`Tx=s_!DyE zPpHr?geVVObSGS77fg5uLUfn5=q}x3Jo@51hR63IkMA{=-G@~^Xay6r(-UR3FBC3W!M^|*}!9PigA`&X|~!iIQ4uFtiOqDG*K(v!7!PkABEEnHistK zBeK2FkrZvZiK?xZB+XFS*Giv?hbkZE-}%S3KmOXmv;Xix0kOlva(u_s_+@njm65_~ zCW4x#M<5t}C|&?g5{BXr$?NPDSL6|p;W;e7Ur2eMknFAlLc4bz*t2Ip?;+sJMGqf6 z&MzS+Bm++KJ+7rIi!fBs!zvpQz~-J9YfW>o(icH?g^_6p8&3mAZ$lThk((bN{n7Mb zbMG(=Gt%5AhUgcM_6!K+Bo7Zi|MBzZ`r69E;_T}B;uj#kEPVg*)zgFepKaR|WW*qv z@^Bca{`GXB`noWrKHSI%(EU1SGeZ*-eJDi56sa5N>wTuX{q?KSji2lPyh4B50Q-1; zc6`(}1(?Bn~viC4X8N&axSx(OC#N%M4$N}?s@dL-p} zr4-OpK?c|~0s#T4|7@<$C%YUxY}$T+$SkF2f`ftS+)4m&3Rq^DXL^ZeW{FqE765Fm zEdbbBTkC&y0n#5-|JB?)KutHG{-Zz)=!&iFj;#SJ0XFjhn|J>p0C3xY##gl@RJ8!= zKfbah0nqpVHUg??PU0p3k~fV&)vYO&%>V!Z5+A(&FKdi1t4{=Ue+dwEK*SZ-#+TQF z3{VMtRa;_p6MzulD6zVZ1kha65?5LsoRNL^$rp=li<`@(cm0uB*Uf`FS=bx6(P67ZR#|Hp_*c6ZGBme+hLpUx$kst&3g*&iA zZM*|*nZZ_WKD>hBN0l_mbbpdp5Z*nI=oM_?89?v=)PE4s-Jjs@i>I-0u1s^P56+E= zabaSdnM5}~2^E-xqNatD7siQUWan;Z=V@r;VFbW{m8(A4Nt@^hCsCD6t&V9J;@w#g zB0(QdT3lWq>>qgf;>qJj_io;}+|bh4|M>CUJ9qCrxaa8VR$N(5qkE$9cpE2cc@=rM zwziRpsf)9#7tITY!xx;&>patR`D|lPd+o&7;H!bVv#%a?ROjR+h0RYqIa7P8A~ovi z)sDxP>aI4O9KF+VtG#gWYF*#CvY{(=pPyd3P?mJBF?V_N=Go%-{ATKlWwz?dmij_s2m054Qkd z6+CSEg2q?pMga_1ogMu$KfW|G{`1?yjhi={PoKLs`o=c?l&n>BT+6-shvT%OP8r*1 zm|MJ#XOfmjnhq<=*eksAPG9ZWODP4Fqi;Uk@9p=E$~3U?kwG~fN4v;i8B!SLaV!fP zR)`7D!-V7#!wamU^GQ*;<{_D8zKJ?+K@w&*I`)3*B%h-QvYb9y*@!H!V_s0%5)=_5 zr3}?Iwz9QjQSIqHU1vUwKY4ubI*v?H)WaHBIH^F5)U}Q3I(nYGoU^3`9y+R|48y4C zqoq~V3{CV&6sw@n;NjuH`+a?3oCJCZ$HqU76p(D?n_xt8OUOIx#+Qj-^W%#Xj~71;u1r2%o_x9lD1PAZ`N_(s zCm;ZDcR>Af0pQUxczDDGfJgrYfcGE(%)h-i|N8#)%R5u!*QZ9W&%C&`^zQ!Bn>(L} zFOL4*c)ROFYhiGHtW%s1Cc@Rk-v;4ju1e9BHdPdWitbeA+opVAn+D%@sL*chqrAGu z_Uj(y)fVQ_5#rSo-LE6ES4U(YTyT$$@IGy!ecHmj2%)_Q!9CE!JX(CaG!Fg+<=?3z zvfD^}pP~3(tO9?egGnlba59WKe5>ot;7u13MH*6yVJz#9QS~=d2|}xfVl^VowIXm@ zk>K4wG|F5vo&-;{gmds(iI%VoTb(3JXaX4)jZ;gt)k(C1BvHVjzwu;vs-1o~RxQv> zDasO_;9w9(f%uuLI_kBzJ3S~R@2ru?xzfcD?^pIrxz92Su}BqDcMT;LD}6xvU^2T_X;WOIv}`f?}6QW_U+q$;Ls6a z0Z}O-aRp&%6;VYkaW!ojxRI=mnY=z$#h9ppra*A^FbhXG(OHK~)3@=|vtt-IF-_e3 zO+A88p1~MKDAqe1$BZPfq6w^cGiI!oGy9+-TvKYmAo0uX^&5#xrC@k902nnaVJ6*ci_2cUzsP2D$ zTV9%3nEALcJ25x=et!1-+|2vA>9=#!@8+l8g17ifli$BDZ)|`AhSygYuUxti#%5U& zaddC@=!EE?h;U|*e{^DkvxkQx&CSV!#$d59SaTN#yXEDXm4(j>vu_t?UoXtOSe$$L z>HQO?x1)iPZd!80ja%nE!lS6M8JWtaVK@Xzh^?+x<6 zZ}&d{0A3j-3~u*NFbR-R>XBaTnE?Pm$<{mU*4hGqt+loOcL5;0vI7JFFayvTT@7{u z{U-^)_5W~d0OD)@TL!?XY6a9kAkgC~TQ&iJ+XV<52Ao_2N`G$0&);PLsZ}j$o29^9 z21u-EOavI9q&^-1fa2P?Q+2V$001;`=LENbcmLG@SAcYpP}9b#YD#VBNUmv$%q+P7 zc=&Gr)3p5Zgo3Ix;7Pgg5LZ$gQ&1IOTnoSeg&E=$6dRdW9*~;v3ts={u#>WV5;7T_ zRIlhn_lN|y&{&s{C;$K)eZ%ZoA$H6VvS)w|GuYh0ZJ*Fl2^F{{p!+?8&E5QPG(SAe z&%({$g62!0`QqJJfcoDItP2zE;Ei!&;$6KZDJO2D@=U+Si+y*?__UATm@g3SHCU{r}0x2ynyL0o()Wq|*&u-o7 zDj&Id=Ec2plh5xpiFd7_~t^G88GMI;`U3m-IuQ4yf^avHB_H`SlL|O!cU1D zAdjX)Z6ZkFWn@kTHX`3VqJS7t=#WrKj?OjpPc-z7)Usu$T2fUlT#ei!kL%kg=#v$Y zBuPDU6=OnbW|_S!OUK00oaja%yD^!8H!qz2INW>rdO@h<$T6X#}7=^x%FgNgOnlJcyD$ zWF~dc@ED-u_nAoSGd<3WmOhA+J4{d%ASwx30K2jfNk!OFRhX=B#{KTb{nCBD0CCfn+UVw9qZ8XOyV zlr_Q^r)Gx`b4E%tNl;gFsJ5~w@9sbT1N?UE-oO8_$bqA>{8A7BSv>(oB)^jWVI@NW zb+jOaC;%ZGQNwU?Lo;6c74f`>(q2}sC^ z%BYGdLXN9yOKIuLB1{zZ%@vV&WfPJH#s*^H03$kUlihSF?tuC?v}YJQvyEx~W*$Kp z(DM_DV@42sV+g(+%Yb-NKpgjBlsPR}1&&jK8Qy(3@crA5rPYP6UlwO)KPo9m9X`mb ztBcSx)YCUXBFzjc{t0;3NO%r5cd?Uw(dD`}TEdX=!?K;nVWs=ar?Y?_a^LKC_dbit|tU1~7AqPR1lB z2FFBu2lzXBc+h-U&UCtqr>8f|S4Rg?l%Kirb7gM&&BDx^xvBA)&(G(l#|HYZ=H@0| zK3(zX?pb>p%_%gImIx*RJd^T0QwqQ$;EYq=SzsOTzn%UW+>W2#|0DstxxIkAxHSNb z%u+!514uyM0)VZx1pr%XYyB^;sM>Bo{YO-Fa`%qSSzs|>NkHf3_5Wr^pqPr5*vi&_ zih$bz#UEeQ0!{?uo;Q;KNuYxNJpo{|8E9HI2Dlf<)8})tOMrye-cW$3{cV# zTin1YY2Xw$#FsTCR5k$skOX|&8Zf;8e9yRwrsSIT_|nFx%);9bAK!aCm|k27i2kIq z#`uz2&Z*ki!s@8J%9z5+#Ign}pAe^DPIP{SUrH`3@dPU=+dCnH4gx@uM`WUFNGvsY zGXoID%>V@3cn1+Z*c9(ToFnbys{dk>5=!;s=4qi5_A5b}0rDkLiKOn1}D z>QZEMVn_GsTX!#KWF;_s=yFO5fA0Qk+kdw0-?v}-n79E#AB9Jo;qbODPR{NOH+HaR zP=r@-q#d25kH*8{1~L*dhxzyq@a_X(Kv_+V!DMuGG|azwJa+rsxyln)+6v!3yl|(z ztoLl~mBy2|+6$lEXa*Rd??T1J%G4)4HB*C^ddgGow47WRy>zWMtM5$t*zKCmf}o*u zg)eW_KI+aHJfC-^K52IJ@NA7o>eDkpN*YcZ{>9OAcF!SO!25bVr z-014u7?=c@A6;1(S)CtWTX_BJ%k0_H7aLArIXyUT?2{o%jLPhJ9NTtF%PU^j=Y+9; zp`LG^c0fMNGhV}n$;_^F4T-pR=f>xmWiu<9oT-yM*RdnHE{OwXgdRHIKn1CPTx{qpD1r=DGozH&Fr&FTTJi{254JT zf}O6Jxi^!2^U8$}<4;ewv>F+c)O0Wg1Zy=tJsi>M($(9&kDi!fNl;@P#gR&;kez96 ztgr|RJBRGt?3vFmFQ09Vii}OmE-GtmFKcWGPs(tl`?4bv%9=XQUFd49&a29fzR;LG z`}*$2j}PA#UoL!py72kg($wh6)acqI001Ma(<3XB00ul;o_wNc-qr{xuUZ)Iw!&@&Kn=>Y~*XL>xF~Z zXv-MO@WX_5X&(MVSD456IG>p$pRxEsL$Q7OqI(RF@|cS6!$=-5m*%rn7O+z1w}uGX zK?Us*B2GHuj@n|5+D9GWqP9?BAnd?h&;c%N4;OaQ7PEsMC94Qf)P=3p1#LA&$m#+F zWxg0klN2v}02%ILB*Q=}GfWf%&DBG3TEXU;QA9)}0TxAs$6CUpiLiJ}M3lKk91#jA z{zOX{00=?%z7Q!kIsgO2S%Q(~pr34~n?L~=K!alijUZ`yo5vdTo9Ht9Wu?p*3-~|VeI5%>cU3T0?}R}Snn_kW~2o>lIRyh4ve!3Ot1-0 zBKZZ^cAa@T_G<9SSntCpQ`2)le*FY~(-&7}H#UA&SDym7MO{hW1Z84mjyA@bn_8Hg z5^!cjJlYbEwB1}y8BSA@v*r zqMT#1sGMx~qyo>BLI423I^Ywf00aD6^1I0ZVAXHd@3a7Yvl-}#aynQ2dvSe1TL7@N zwg6yjZLR;^6;aa(Fu-ORKqMCcqHDRcz`z;+uK#B<5Abgd00010?QxYY2~}-zRc-NL z1JKsQs^9V7@?S6y(2`c$o>twKR?`M10V-O+-v8x|iRFz6Westq;1zyCX#>Cm(M2_} z#WgXfYB*&L@fA&p;5P)b3cvwCi-hvl^xDpZvc{nF6IUPf_K%FDmR5#m6(^Mg*ig$U zs*WqFiq0#G$*)K#t|c=9?ENAlPnP(lob*Y^@=nO4bJDz`Q`{pHsUaL{P_%PEl%s#R zy>F;3Glb$DK&JZ<+*ww1Kdgf@pM;EH68&0bq#f|-i$Q2RDIp} z^7Q3+Kxlv|R`1Y(T|2gI6Wp^$S6#)1h@*KiJOYy$iS_Pz9j+zkm@PNF8m@ac-DNf1 z32M0)SbxjE;$mb)PjFTPD=ynRC=g|$DAmkN6-!uKsthvpllOp85C#BWWIXy=HC6s>c%8>`#>|_G(uP*F|rI7S!@wg zVi{Lv6IYJ(;J~a|a1t#fN3k0t3M4Q*^F{f{4a_FUIMnyW&! zkI5WI7@E2HhO(n$DUJ?TuJ(MGc-_&_Uf0;1kaEJ=oyiP}s%`ANdgW$AZPm$?@W$e# zkHfb&et!C~^kV+Q(DLVJtJBX{fS4IsnI2vFJiH2K0G_W*4zEr=TbX(aGQi}M)hRF= zu>5)G-|PS7Pmh1wfj&N3nCP2*`(WXH-}>ah_nD_F?;nobZN1WzUZ2g%3Zuk$nuR(W z`dVo_7|5dJ4(p2YXp8XZitaO(!B0f5<}dkfq9DYb_x!l(N0HR9>J{u#LVa24bxx#l&c`&?=#Lt#Bed%mNlo(upD< zqAd||6kU!boI`>E0gynfg;uf^I07t*3_R3KpuiGrb&~9KI25%QidKjP#8pqqMNfu~ zQTN0{%^-68`*&>v;CScWy@!t-5RpG1p?*+ahhNDA9O=)wU;oY^H2fX(`BE&B$apbt1fUL5plBT2vLKbQuuWhWX zhgL)4HB5*Qv^5NC3&q*PNzU3?eLF8BM}~k){h2jjd$3G7JAfLO~Q zj#WqkB_z>0G|47Bff^a}e}{hk{JOrpys)yqu(~$)WqlciGTgU+4@?_oh%!ZDQ2+p# z5QwHEOB9)GZf#{@ZH2|7&vXOoe`RUz<-+`{wUrNRE1v*m|Ni}pn(|yfh9eQ9r=}z( zb?l(@F+N2ZL1P1my&XOzly&xe`=`l|z%zdRwzjrB`|Zop^5WE&wS`~5ex|0x+1LYA z&0_elT|601-agI@rVE4VO!x6%vWO%?QX=Q;>fFpH003UjO^wY>jm%Cy8|Xb(k{8on zS73}WB6<5eMQ1w4oN!Ala8EAaT7XJ?vdVlwdrztNKVAPf0pK6gf9d8!dR7^D{ePm| zBeTRK1B|VA*sZk%09$Ko{jUPRKiB_};0$1}7f^J~rvIlquBPjE4M0st{AK|_Ra9uVsHLa<&ZE3Zw88z)`03K8{r*P|i z6Dk^Fi)#VJ9}7lxM1Dm?er0@VWAv%I`101Ist#a}FKP?}Ikd3!Ij^b^Vx)hFci;YP+n|!i9B?R>UuZ;TWn{&LC3 z+~c8vn-}VDbrnwxTpqgKa<{AG*^TBajk)KmPE7P)oajH-b&7MZ^VIu?=dLy8T&vCa z{N&8FrqmmCX>abgoi2`g(o->T_SCCem3(Yw5`L9{;;@>D}PpUAeO_ zuYOs61&Ue#0Or9Spa2G}&i}Rmft3JrW9yr<0v5o6fv8=Hyj!s9en!q=H1(k-Dim|bX9!=s+arej+P%QOJ~|IXhO_XpeA}ID7X%s&SJfq zn$NFlL+Bf+LN#=Zu~trAp8i43Ui9q3qTyFB+s~c%i{!X@2ba~hT)TDSTxU~RR!ntf z*wcGwHr6M8t-f3O{A_vh+1kv=+Uy9h0}R03!HfSD&;&9Ec;z@w|*G{JBBvBCYHi$?|NTdxU%ogT@QKuQm`IDQ$&VG z2$cSNg`{>JJhFYyo}D{(?BUsW=&10fC7lSddS>zb+>U^R^` zASf~nW36N1s6%wpwsg|7cGb7{G;;DWp|VhJz9^bM#xu~uC)9!&PGE(T{iCgdhjXc{Lde2&xZ#D1^JK5N$Hvy z>Z43`&5V&4Gzb7hOEj56w70|HF$MW20QJ8x^I~P;_4@k9wRJ$#f9W~jYJt%a6Wk|o zVEa*ly$TY7sxn8_WyCdQBork?L=W={9_BrMOqfK%);H9A|Gxh7`}+FI+_$ewD@)Vg zzpYPBesFaGesUQ!FNQ1K$A!+M(%Aq2P`z2sUQBle(~4sC`o;6**@@Yy@wurNvs2IK zCZEktJlXg)^L23oPcku(AJ~1eD}ML= z+{6HG5wI7x^N%Mu0<08dfXpob*jifvu(h_<|LXc(15nesnFQd@1MZ5c>5i%H;{59Z zs%rl~1psaF)g7A*5LeX>HUQ<`{c|lqt-lL@xqEtDJC^}k002m@X#)TtxuPkB+YTt9 zyn$0v7gbmVNdM@iI0Zxk0AR-owPAq_U`c0N(0s^@0HQ1Xh@`BbtO|j~vY@fi zj$T-o-|8R40Pc=;rkgu?Vx2tEj_xLQu4pF@Gh3>Nyt0f2T-)5n!i`nj)Y5bH()DX+ zetessU7EOj>w*WvO+-X!$F@H;#EvY+nruT$j%`||sg;=8tmcf1Oh_VRhAYPXR&?U z#l(&R7$B{n6cryi|9Ry5=i!p1kdBh1ACnKKp5LrUjXYhJGX3<*n+M%JHR-on^G0sB z_H`HCs7sxEcIIwJ?#1%N(VGoD6$wwy7d^XJ^x;AC-KONrl`)GW7vJ~Rx99o39lS9; z)_bobdu`(WxA_-K(<7_%FIMMXEQ8a*0MWmh0RUTqt^+*4tp`|Jc(FYF;`_qKmAT2H zvXbJii}4LtkKrPe98)?Uj{E1;sd^+KLkf-jvQ1b?hTd_yp0WC#(J->7lYh|7M+466 zaCIV;7?eQ?KV=tRMNO?Y_s>$bVr$y4l`Wj14jvCCriaI0-G1=!+s1}tMEY?P7d4ER zyn(eM(pp9vkFuku=ASC6s;+Km^zdOJF+>@No`fb8YGlR^4D9JS_x0iHJ^Pq^xvfA3_GiMXCPkM(&=T}yrxpeXLnfA)U zxVplaq1&w+OCuX!-vcUt`SY{&+0pgcF(B5a!Nc0jD8K-~AAvCi902M6bZrJy|6pvE z0{<=u9sn2s#DIxMOYa}9d>;6@H1=is>3H9np8E90lL3_}?zs^*$xI6t5pJm|rZ2&x zEwEXPGLoO_Z3X z%04EFzGyWU9T^H-%F;m53?{89BN*u6Vqu_di#1Y{5_QBO&9x-$b!1$1rQLL-m?p|> zW2HchW~c=u%mOS42*+tg6Cg1}Xc9#`o(xO2LL}QDIDquGghp7x{O}rVqE-kQ;)Bt& zfGbG~?EeoS{r}p|%X@@RK$7pM@?j|ipQ7O*6;pn7{1GjR0F)vOryNno?2|_9JqDKf z?iG~ZC#1ONu;h;Y0)O%B-??ko-aWf{4;U%!5y>2BrO zvr_{B(LO` z;p>;>wbfbRCH=yg)0Py9JCo(=<>N+YxiZ*P28-&=cJ^j@`UVilj`}h8*7y!V4 zO}7tY69Y0!xotp8yt2x+0AOov0l?PUTL0@A0I>UKO;^+=091EIRdX#sU=pB%Qv;R) zM*{#*%>{r>45(_4uWXC2>PV>WNT_PxYyip~1<;aO1G@izV*uCvpH|bB3Pe?NdQEF8 z005N$0D$AbIK{PK5}>Fmwy>I0R1;fR2N^o{?AM1vNF{CkhjbYXAU<&MS?{D~re}j?OKO%_{={0PD&O z&Magmp74xJrbi`n>wr1b;AodX5CH6b!|cEavGxhD@&@w&1R9g%!6r~Wg=JKZNGlQC zSp*M16uXoSZ)#k?cj-WbTxHwLAiKh9B2ncBt_-5LbD4$FE8J{d!wtZ zYIf@N?b}x^h@>5V{3XdJV6Fpk_i|-rW_j0~rFIY6UmB<0e&=y_f_Ck#ThBQC@>6!t zfd7Rj%=4oz=fUv%3`W>tKoJw!G=d}ms6jry? zl+~77kV$`T-@aq_PA|H9Ykf)o&F;64E)~SFE;Z%Oj^4ghmtC6R^WB*f3?I*uZJy>6Ou{1NjG6!Y=)&SM}j|B+4{+|a)064GCjeVJWxiaerOrTW_@LF< zSPg%?hCfy{n4lSq(+tF@g%GrWb0AJ55U&x8*JPV1`hn74(Z^Wc+ens;Qf3;<`Isr% zASB5;3dWjJrn)N5wj_Oow!EYa|3Tgz+y4Vmmyc$U zgZu}NN*s|?J1hg^S25;SH$R|(I|Lyff!Q2}+8t6x9gsro7E#$Pq_9U=alfcCFTd;_ zUa_4#hj#1)-TwOy9y%l_aztDT?CY-zk%b`T5he<{C?x}ovJp-VMN&tTwXhTz-UdN( z)FwOWQe2R>?uHIthRzH_S8r2yKa^)629W-Y5WG()sQ&$9tb^igL*i}26CEN`oT4*a zI9V=nS&p16hm?HlkOWgZS1iFAZ%M9dZ}|cOz~bV{!mnSy@=s>)?A?h#>gu9Q^vyAb z1e^(xXiOrZ$Yi{&y&f8qUvOgM=i=hr`<0c?E2|&Be_we2`kB&kL5U;#A&N4}(#I4e zj~y2kIxZq8BPJ>@A*LoPttBrDRg{ORDCxsB(5413E%ieOc*DX&zWw;VzP9r9%hI>6 zOJBb(e_3Dk@%DD2(g5|(_5T3spXCAofR8VY;&JW`6h(ocb1eKP-R0iyqV=30R0|1<*y zJ_j5G2Breaw&nnAtt|l9T3hRXIs*_<)fryd!5s(I9b3~K4PpRj0g9>qT>!9I3LFb! zKzm$G`z8q_)N~|*MxcLc05&Z^U=PsWl>nOzkY3lGR@<6Z-E^Y1BdfAKy}Bi>x;e4D zA+ESKsSMa_Vv8yhO2Kn{NgXXRh0e)1QQw_Z-ps8DZceCbjROIoIib8cuDm(Aq=8f3 z8dKKFPReY#aCZFdo08`CfaGlO;=iB*kp598OTw}WK|4@k72d-SY3&-2p3h9kagRvx zh)Q(}i>HRhItRr%21GjqMA-R(0AR}w1{i?i<4>l8{r<^xf3gQ#L_tkJMv*{clRN^j zP7HHbpUs+JE(Um;yLe-r85rQ>jx?+j&5X*>wQ^(!2X&u6omE_R<>s}erH^w2~@hwQ114Zosm7 zfKd6!qOuoV_J~|P@d zpY`B;@v}=6-31XJ`nw;WExuZpI)1z6LTU8%>Xhe~D@LwYJvvu-u{>;H^xUi4_1*cA z^Wy_!_b=So`bKY5{q>_3L5|7wWj%LE{>hq7iKc-C2J|?6k8lI`AY+=JIXx0apwgq_Th8`) zg{Lav+$=&evA)Tw1W#S3K!k(8Dv5sFz?N4|SHsfT*eh7giUqe0RxB*kSV1m3z(`E_P^EkPh|#s#QSJ_A0M@5RSEo1g000R9`!EnIliYSdQ$x$sL(4Nm^B*70 zzUyC~9pCu&etGg?Z%<`oZbV6}SAM8Nj=yENy`H0I9=FK{dYh_L4kuV6np@c;%j9{R2J|wkfrHKx$8?a z3}jixO1{R5zDW5X6O}NmdZ@Wt5LU$xt?rM5`CCBPI5jVfI!;qU<}lB$KmOSE*WO(R z#1Dw69FT?{kk>w}YQm?EIs_#gM39eY+Z};fA5z8amD1TIthn=tJdd!-J~8!uf-<}Z z1a|T4-?^K2&%XWp4<6RFSA$8z^yGC+lnt;d#uln31T`~~28N<#ZUeKh z)h0RWke&3bsRp(*LkACICx)?$w}~6m%)=Mu<&R+m;e0|ZSm8w9NXvj2N)X2`G{HVB z(IG0$IVQt7Hq$jO+a)f?HSweqC#|^c^yuq1lQT0*-@bj_*jQX&T?S%x@z<}Pu~A`r zcz0_XA$2h*13b={L^PvVVQg$I?CnX84*Dq5+jp-0`nj^UJiWd)yS(yoW8-T|bfC!o zT@WQ%h2vtf$HhdB@E_vcdtmSGgL`=n?%l(`|DcF~fTFB4OkEYKqNJ^*f;L7P>lp|M z2;aJM=jX4V%geLhzAdePnFn6gTk7laB$AhZAl1jujR}OWn~y)$CxFWIclPpO1q7@v z&CE}|UYdKmFf%?oGcxgEsIexyBtNdQGUH@+ik7a91&v`F5JQd3aE;G%OU!pqDWv~n z`uF0N`7-|L`oGx-Xw(10{T%S%#dQP$pSJZ5yS26eU~6ry|J4itp#G~mLMz%LLHB<* zcOGzO)aD?tn$Cac0K`;v##D1lfvej#?LY}N?Mbz5n_Ymoa{$_ttH5qQ+@3$JskPjw zX-%(hPp@ms06t#cl3jZ`v$`##3akd^oT^DEspC3=0O?;7S5lo=20nBRPjHJ!&Tcr9 zRM7$`eojS8OnD2ZtU0ctg;U-VTizU7+RQ0yi!N^p$jGbjyfFU$ZD~VeU{XdxVdW+O z0DJg}qUgNxn4)S!Tbi0NF(AE&m3Y!MEXh4G75M%xp&ZBH7{{P!$G}L(fCzivFdJ5o z4Ku*nCy>ktBzpQ%fP*JnOkS1mm>ix8cKye=Ff3?nyerrd2;9NmpllqKiFct}xYCUr z7+9)TT}$SzDdD&~sK*QAuzwj~P_i*WEraG0FL4y>;acO6wr8b;zRm ziB-q2W&04WuFs;X&%W_Fw!B}rd{Do97+vvr$W`z59EsZ-;yOZ9+DRliGZzjOUV zr-ld4jlIqdkDM9?9qOLAwY;z|xq}MHNGd37Y;X4uk3A-%wr$%EEiKs9)AcK#2EI%_ zdDVMisHb-Hdc(Vir=MJ{y;75QudDF$;JK>}nfE&L`_Gqj7KFdK-*&Gv?|gC0tJ{rd zi=rN#F6!$pc=dPv{nJ_JN+Z@^-x|GMez`be_2cuQTV1^u3csz6F3gQCPLF`Kzu<-U zZwnB&JJ9(0W}Bej^8v<|riM3ue7^nnHTU4KTTh>}bK6BN6Bq^EO}7Vdj8uJ(R1=?6 zJ&!0I_aH-$K&)3J&NCWDaP|%hzjVJhHn+r!b0Va;UEPKawewfE@PZIr)5=>I;ThWw z%S#|_4IIN|QLeIvc8-xb!}H(6bIK&(rqa3?WfQU*%0^ZXCvQNI)iV!FIuV$fa|~vv zs*lFmxJPB=re&qRfARGF+t(?%*>DU-+Z1bnvuHebw)e@97u(Oy*|V^srsvkxs2UHzBtMz+aK?51tF;k z!v+3=^6$_;%4;ZbNMGWhp2R@|;BX93{|8KEj}RdewmLHQ+Ad#EH;Ti)G3 z#aTzr0U_mpkfiF#`WP#-O;y<_b-JMfzyoYEHGhm|5Do@JFagfS09str52wLKtFh6l zept0Y3#}lWCfiim5A+DB0|4NMQ)Xh-?2R=v6(o>IxU7sgDEqhX*uHbuj$J(4ckSA~ z{XcyBc3EMJY|uy_G72Sin5rX9)03nd$b0F@dh5%ukP1wF6*f}MQ(wW$M1^Id?rREh zGgLNF7M9@W-Tl{}+yC0J?~ov$sN!KM#6em8{fZ_BR5AP2E%@N%18^%I2ywp(hF3~^ zkBAbFpzI!D)jcBWyh5_O4~gvFvw!c-UHf?U9XNbMKvYafQd&%2Nm2zO3p0?{Ln$H6 zRZNKLDDb`?g0q3(?cfAQ1kpjq(g|tnX6WEgvKW007@3!-IJb@amcv>*Fwn1R}}`Q2#a<8#}y%9l^nt73BNj)4Ol$OJ7#zzpT!E zS)ci~K8@CeC`%qwl9iH^lHlh9WdH6xyLRo`xqau39XtNovHcI=zg_$G?h_LfRF#&3 ztEuQhG|3nXH3jwHkg#9BHWn9W*1s%#`L^)m`?pW;Uz2UE>^(i5yg>60mEl8U`MNUw zsobFZvgc<$uFij4ntikU|JZxWueQ?f|9h;(ixjKk#ogTr?(Tu$5)z0TK?4NW1P|_7 zpzfXOR4FZ`RHs65r+S|gW$C>Zlv!4^QptpjDPL)lfWC9M8}#_rtuPAa1% ztG2zMr8kS&LMUTm3M)zFwRuh5`At1gbY=u5yP|g@v%ZU5+d--8BG+|M>N>$#-w8Y< zF}jEiz2y4-6k2sdci-z*&sbfZsH}V{I}r$A0AdLfTg8(c}DT&~U&p=B-p77@kL^2e_)bhF-WA^j&EvM?zUtDax+(~+%zB$o&|4iN2)!8L*H~=Vx|JA0*14W!rDg>U1PGW0+Wq>f)MGH>-X;ESJb-3 z3i2#T!3=E^L1FOQsyN3NZn;QWa%!WXAbb8T}X_+ovXI3M{sIZKBJ|zv3B*t%)NWpvhs7wf&add(}{SR zqgMo$l6~d+wUeWR`BYSG5%%fLfuHNsKiA)H&Ar_G{CsO^W_$7ZZoi`qc3;%3g%`UW zQ8$*rJSZTt4*{O;_Wxn00I?H+K0V#~Jhk!R@yeSA>vKGFg^w`j@o_>#wG?@ z*4CDP{PrssH!n9YKL-~#2PY2)2NxhrIsW)vM3CRoNCzGn9B8c*YA6+HAPqH;h8f95 z8OcNf(M%=QTsg)}9%d@zt1V+JB`z(KV!;ySQzANRgrf9L1ql9!Y))z*d>o7h-mk!Ggm&hB2WK7N7FNLYMQL=qx2F$J20j6tM)_%`o zqq4rRZ7{c?E4vPC37TEkPA;#*7S~{ls?zexiKTT}j5c~x9}Erd)|d8-Q))X%00uO4 z0Shw70G*`TE>dkbk=aA3>!H^5AahC^+gfH{PPKG*A#)0WcO!uSz`&IPP{F{J)KRLN zO+A8CEuByWHSp{TC^jdGm=7c5K(Xl|X~a+zG3=k-p!lE^ur-ih0?I!L0JBUZ0 ziPxtc$i+&I;Y#Mg3ieT2fdun}YBOY;XT{m5{s)NzQ}I2Mu(tcqmcPQ<9tLzy2J}t& z^*sq6dE-`dMlS@1&aGdarck zT<^$Rnm%`HF#kd?ef#s%8$-2IS9*S|zg*wVdts*lu@iotftq;n1rXWA!Oz$|f~Gfs z=RZCBzWJ%Gr>mr;W$4y@+r(U*sBBvQpV*o~!$5>x9K|MzYzrgWN0HrP@|<8e+iLyiFh@n%UHY5~IVH7stBRm)<{_ znW^pQ_YP0-3`$~kj-J1AqqvBcOGv&r(75sW(a$fhw*jp`H@ma=a(fy4VK)Hvzc{_k zJ^|PQd=X@Te_A1dCjd{uq@d4J?1Y~wa1Ov62mq@e9xuMTzyA68&#&{F^OF}&)|OKv z3z1HAxGgC}FU&&H^aPKR&@bvDocc!(8cB+oNQsz837SX=nMn&<$cj3tN&wQ|$5_!_ zPufFA+EY`;SLcMko?MWjoWG8Afc}YSTeUbljT8s{IBTs$8;uwX#dupl#A~HG>m!|Y z5e}LN2klf~;i!f2FvPhVB-^QCUG;EodT3{Dyqg}%Q8UFx1!<>>uv11uRL~Bp2q%qH zZ$qfFwu7a%tDBRQr1btj{@~?0z{$nW$;rpT$;-K)i)$Yj4=2xWzy2XEcF@dN8y1YlUcn_&@9oFPJq{<^I&%=L|n~U!NFChI73Wbbnw@74bpKBGw^^Kct)7`M49`?nE6Iq`A6FX z$Jz$RK|&Mkp~?0U$&N6%OLVGBY?@mF$|D}*lZ5k2A^Iaoeh5lnYDO?RI~1E6ipvcn z=0V8?fb@^dEQMv2!LrI>IaRTFHGU|nl7X47p1!%cwV|oGwyw^Zix;-O?0jBc`1%Ko|&_WkST+T7OW!ng11@88a9 zDJiNeDvAh;aBy()@d0=vCVc3)=rKug32AXjS#b$jQ3)C0qf-0_MYy=Rxw$w_NK4t6 znma(8{ewfkfdH_$vAMMUWqE6R@yE}t5I+w;Kc6@R5}KGCnT(7^pdyjzh*WeKutuhQ z`t)*p_2W7K086v03(r2iyYu(+Yph858;v)JMmKL5t03f+05q&T@q14jw z?25?TDsaRv+jkk@A7>v3fJFj@|49Fsf`4FO?+&|XdjPO!d-fkSLh}&5u^->ihi&L3 zf|G#R>YoJ`1AzHIEd&3ke-?NSkkJD0KtGk$m)$m))iRLD>dR>z%wqNBwhq!-`}0_R zbk;y#b8ilS0lQ@Yte%|4&OBCkRzpioTi5i=%c0Y!^B9d~ZT%%}eZ?(3^oH)7x^{F? z4W+6%zp0m8(SR?h&8}@PVhu*&b6|w5;?5C3@spWd)LL-+pIqNXtOEd`lf>*KGuo-l zj?B8wl-$y)Cf3tuPg;fslc+hw@@jlpH5Ooil3H|OHKDwo%4o6l2{~bCo0?aN$ghgP zWyg?dFk&_oml1|Z4^1P7q!NQu386>=codL?4uE5T=o6P3kcy^ZWi^l_e!8(SZa+ zEWBbcxcORe$Muk|yU?CTvBOVdh8{!v9)u1&jGTDxH8>f3{#o|(c@JupxRQyIidsyl zH#Ie(ght5CM5U!AAy634B%BMH=9ts%-1Z<0`10P#a6tWcJPz)j3>lpE8F&#i{@x;I z$kZ=2jhHb!G87sX`pYlB`gpo7zI!(R?%w0uW1~IQLmd^5t`6Qi(>YL+adVh?|5U?p zE%o`;&XY{i?6r;uXX^XQuc&vb-*<<8uD)8G19$y57GA6`&45ipKR?~r&4d5v1c1FwK0m!a_he&X zW@r8H=FZ02_Dt%aUl58aOhXAFxkFYlnHo-RHzyx0ZEuq+8;@BA*u>_fmNeSsQZAy_!K}7dr+< z=a)C0x$tLmLn9$Ip_Q5U_WAXnUq9}wykCO}U?yt>1`}ys|_VUXsr`i|=v4vQdf)qP+fVQ{6 zAyX+Xb&-9lhxQvt@ta5sn@WkA$%>oFiJHp^+bD{0Kv{0MtZjEg?fQ9IR12j!xV zaL_`z=we*;u+BP3R*D!G9ioQ;+CdZRq>XddMLTMv95m7#)G-hhl&xZ_i)uJT+091B z(p=xf%=njIe&glh;pXJw$l%MC1U%0pg#rQ;z3LTXfkWm+u(-T%O5md4eP`2k+b2_N) zDx~gkK;Du|(tzu*GWTI6o+BDOhc$SFWw`joId~3m^YR@K;1>}U7dt8~F0F7(QB6ie z_k^yAf}xF)nWLJuhX%w)(*F!ZM0s znI+LVE__?=M)&|5**?MjSPy9H+8gU)G~o<#roR(_V&`|&eHbInvJ>HVKGrI zZeA{4e&J)1$5hmhscTDU>q+Yw$r_l-8(PR2nadfN%IX>)SJM=cloB~|*x1C>#L5Pn zk^bZ7&y|&h&8_9l?WJ$uwr8I|kdr+QO^Q#*$PC93L(sTjG&Tf-g{EPlh%^KVzq&rR zzVd!;>Gk^JELhL8_yhpmpWj~p{P|(LuSr;dSJ&9Y*wx!MEZ#W|>xoSFClmxzOQ6~1 zu-xi@0N~%kUl0ijYU9Av|Nj*L{CfznR|LFgdjPO!d-k6-d_zC3zK_`0k89{7vjz!` z{kuIt!9iev`fml|AhEfR($b&a(obRa0RWH*NdMNs^ya<{R)2QeaCYlpZp&a^OFtm} zbL+eEoBQZ3{p zGCN3&b_%ndRM&^hXB06T9zB23Iy3;!%*B`15Xx(DrM397I&2A(P+mu^ZZ!7}KCWqm z%q~IaS4Cp8qDZ-so}IjY>+0z<=hf8J_wV~X+{vLRH8QKP z7}0(+sO<)H;BNHDqqxzj*r7);0}rDH9>$J64IiFFTzf~k_Eg@?QBzqh9Ua@#Ogq_A z*ilPrWe|tDb32>TTFapw)oEok6e734CbQnY>VkXc(}1Dp{#{c+-OmCCU$~FXIuF10 z8+hx0YIO7rD=RJ<8|>Fq*Ax;GEh{WIH`d?TS~+pD;pWBu$5+SBwlnUWWc8F20RXr& z$~@OWe{rR4tQ!C1JnPPA?b(K`nG0?Ahifi0u`)i{1uYt;`i>$k2HJ3W*4^K6G zet7a`C++d6#_f-fuJ={UO`iL@_GbC>?8d_DbujY>Q2$TY*=4WbrZ|`%|6+G+Frfa| z=bmjZz1UoN*U(VM>K-a-9W{!;M-{i#3|;a{AlZar?4Vee1gd)y-49Xd5|Lo(8|Isq zYY$7sm(uUQdX~*>)(=RDDQJz#t$z_Lx*_r*%0qMWJI17B||HNeg23~-=e;!o-+sm`ydf^4T z2@;4s>x<9U=645yJzbxlT6zyo2m876{@e1)J7>GA$+3kg&eb?KYJ`ce!7;rf92%ng zw2$!^N(&oFix^1>nV%51R5)a*Aa0{{*iA>y-$cn*U(Q=!#!p|?TT>!HUoPBSIn+cU z!c+-nssb}ngxhN++G_z1qs*1yj=FFM-2@x;6nmXiNBuNMy;O)c5~782(t+Elr8?@M z9CgvodL$2HvZoQo36T3*CAZmb;Lyw~)TSkd~*gsvV!K z5!W#d?jve^$F%s4s&a}*?H3T|;Ns=x;pO4y7Z4Q|JuY!nTH&~Yx`c|Zj20mMEfq~5 zN|vswHlCXH0ou-?x*kwnZU`%=lnhM3|L=tl&NVG_DeoRJjOlC<;PH9YTc?_*8 zF0Up&uR5i;!52>A7C9;`EaD#!*xb_kZ2I}?`ug(f^2++s`sV7p_wN*xm5#|u+qkJX$&@f+EbZA0iXnbrOJZWWpd2M55YiD(RbK&RDAC;v=07x7_`oW)`z(vZRMqyS4p4Vh!dH1%|K9bC);BJE*F4>-jKn-@ST3d<~uq*X=b)x;Dq z*}9+kZ!SIBA0RR|KRJV7B-LpLa*t0$R&jLUnuD*9Sg5|%v1pw@7 zU@~if+yXeb0MtLVmA(DnI*9 zh9ZZuO9I%#!bpLs#Gq87e+o7P1w2U-lT#6rR`iGC{o~O-F-X67Okg6;CjkpX5w70- z^U|FgwM98|YNEG`m5#E!nu3I$u6!ia4U_0sit`&|rq$=6 zO7m&46qZ@xHT%A&zCAB}x?gw<%({%eh77%S9eVFm|Ij>MFzD9I3uGP;sNLc=}x9`S!f)y`^^sDlWI? z-5aiYe7a${hCFk*<8oKggNgc?D;>86D=u}?AD?NOf6#xa4l{GDbM@`ri+!c@FaO+L zdAIuM#rmh|b+G33*#>(C7NC#8N`T#hU^V~%ac%C|*4n$}&u@!LN?JxIkVOraQIyP< zQF2|UR~*$X3~m#a9G+eiLMV5Q#aQ};SqG(tU~(N~EHuo3=D!**v`t3_MZxoi$a?tVTx+~}3-uSuwZfEJ`=KS>b5?kUg zf!qIp&@hQv9ySpoVbPjVQYn>Hi}0*bmaVulzsITJ+-90 zb)GstCTVPYH@0otwv)!T+1U2C z-}gG#cg_#%FIdl-Yd&L+c@GEmQ|a&8a7&hD@}3UK>2XwJz+=fay#8-4=++CU$h=ZO zND^(>(C_eu0GKQe;bXqjUYo^vLKl16U@-;b#)9vo1E_|8$_A!kC5VgMKQ1#v9jAHU zI31?a#c+0P6b9RmwazNsJ-E}-Gu|K9?f5smHwZg34IhO-+^yceq3DfFLpc^4Y8;%u z#Bc6TA9)m%X#Wmv^YV`^bD?I{*j3f$)HK*RIA$82xJ__LtWjwUcYJzTq-F@IOt3v> zXr!d(<%Iimg+&6cO2_^fTY^h2x(^<5L!w+A@$`-k40!xV;na7f_U!}P%^DknYEsj)BJ(;hMgUSF zuz@NR{hV}*CP42ehod4s52PI2fT;wkW8U+I6gZN^R7^hh zu%hf<{rJAq`2Jn_o;fD~FnFjo5OLZS51T%$K2Shzx83#jdhzy{lGXO|QnYy3H2F|; zSac=SE%|o{K0J)u(`&`kix={_4HC*zgdE}*h6sARvGQ#8k3SIm)L?bp&E2g{UGInE zul+|n5CQ_EH{=qwf|gU+)Yf`f)&iKM*)q{vmQ23dmp^#7NIkn1A$siRcW4OA^VQ57 zt24Y*?3e*4y%~TxKPM|wC#RFMWgA&`2u?jlGkZdrPD$r_1#fLdctM&d)Zmi#5DC|Z zCcjmEO)YO2K=0UI#6uE}0+GSQ=nu-_kTkqAr}x{4aR1Kw;^1P=!Cv}7D*jo=9r%{om)j$0~3bO!xx= zS;`M|A-LIQ65inv9tRYe#twoT^Hwl-HRY^o>OiF4W15XefT$>yo0mj?jaV`d&;)o z*WuGPH)th^>{o)Q0PAjYm-w}|qqCEd!_UuBqX&b}f-AlDl8ZO9^N{V8sCOIod#=K# zAg@_GJ*VyL;^3)twz7c`zoQ+-+@tLt&sS@=`J%eZy4~MwRPABW9djB^W|iG7@NQ)t z2bYSAhpuY{>_}X1W7UmE0{mJ&&8+)14#NXC?M{^&JyQz?*3&&)+U#CUciuW%P2GD> zZl3xEWyEEHUmu3&0}bOi?c?9Sx=})Rl28$W9j9Lg&;S%jbwQ!G z=9|xp2x{>p%E^Kf@A>d|+MkFG^t284V+Jt=tS7(wV88BVauNw6fMR;nt+^DABy>9T zu%<-GkyFe})|dWA$+-xYy76`5AJp45zJ2p_rVJZ$5GtsRo=!d7Qn;WxX!0W|xhtkK zEFv>3qP?jnIH|`!uOYk34!^3=)sTTu98P41Z%V)Q^IG3V546=Yqos3wIeM6LR?}0{ z1oxp_4|NAIemmj1)cl@-8$XeeaDB?e9p2_*KjvGu$ez}Wfb zYu%I9F0>`1!1RZ2F<(~}gAx7Q^e5%>0hF%>=KdTnRi)R@!JXFHpb63l4B#tHi#qpt zxewWl?)53Oc|RkAl;f*B{gdFwq)}{3(yS}sTIL5@ zQvnF6X(E+P@MDVrqndAaMakABY2dRG!p=aAVqSBIIpT}_7#DV7VGf7OU<#A~4lks} z0_-(ug#FTJml-nd6Aaz^na5KTH@(CF?Z~Y3tnSW|1{E>)!5>C_AB1mhD=$L2nf#f$ zoxS+>^2oL%jsWtaDk4hi^*}>TNQRDLtbwN3!OW~^ z{G8;$K@5GlOu3b;CEf_W=4b{VEePeiSFnef`wzeT5W^HR(;7^U9nRmXT}(>Hop`Pu zN4*|Xtrj)Dg~d6>HDZWwK=HDUrp7%|fozHk?kXb^1-Ks&cQC^Ne?3kV4ek5HPG*mX zwh}4jEsxkn5}rsbSM>LHikMj<#XnW519fl!YRe)N zrKJUAcS~+*QTP3P{?7BVvO0g(8l4^ARZ#2()CWv(Q%o`NkMgsvvcVf+rToqSHp>la zQX5W?8+WP1w@+oQf*g;=#vVQp8=nSR8E-fHZ-Y`O#LOiH3b`7DV|;K&8KIBT!XA{l zAF+Y<=#$jEFOQq_Is{iKDO=Sw-J6;oO&nj&CwC1oSH-_ei0+%3LBV7s)Qn}h)x|~@ zC0E$yc<4ujF?V9WUv}X|Xok?z4i!O1I?@NZb{&VNITtzhlNIWL1c13PjJ+s6YgKSE zk(%Fy`Tys@=|4s#F`b2@wr~qhoZRlQb;J?qx z!aXSk}lO`O_My%x~%*CdE z$;l`&$QRZ&8$Es{ZCyom9X-`uHPyzUtE{RMM3=HOX7N^XUu~Ha6BQHw z-nn#|Jc&hf2&ZH>;3-}rhaysrGSfSr`;)laoZq4}mHdM~uyN_I>&tu%aS4^+ws|&6-Y0 zp_Rv;W_)*J&etvL`>dhSl<$?a;_HQo3^&8(CE4ZtPhf&NIv{DT#cH5jmZt0AKwg-U5Y(r-R>zV+hQWMZDr0N*wa4Vp()_=*m>aM zPdEa@+Cf@z3)kCJ%Yp7$J~KalmykMZe=mbz4~Li4{q*Nt)^v>e5txHe6SVDD008iN zVET&~keXwJ1JSvnnX3QE4^jc|=BZoSgJF)VO1`O#@hdk-)NDN0*3NAR;QyKAL=KUR ztso?m;^S3?&q)Q;($9`fBV_NV zi8aIh$#@y2FiUx(+)-r|SYYTph!Sui8~~47$b8i|afKShNmg5O|JY3k{{EZydvP5u zmzUZ7djH+knH?8SPJmPNYSVZ|1p9gfbIa%E=QfxXVC4wV>v?$iH3jA>ZHNIGa8fmN zWR;V{=;vME&HZNMb$QqEX4ZatO55F37VWV+%z|LyWT6k0w~dA3X!#9ohR=6KSb0!N zVuLXDvz{#3G2eEr{>MLjUy1VU_FE$DIbY9P(qWmtU~2ydQ={T=7L^xGgduaMUM%Hv z&iUR-qHl!-O8!;66F*spbvb9{5iWBR%nQPt7lvB#!Q5j{OJPd=gkK9XoxvVrT%n}_ zXZbNsoFrbjq}Ge2g2iR7mYQZZja^iIYQ$HSa?XoGZO2rrWx*o%jjCAadl-vqoR3cD z`{0oY2q1Q5?V=DYAakSRh8V^Wn30i?;YN%z%?t{{eIxdJ|2(UC<9YhHee?Apce*h~ z?|FY5XGOAMWuzx{@d7io`oSYgN?R2WZ%Gy}0~3?YO+qzFPck*+1I&n!1YQASXMW5U z#Q%zSlsrfTHTWhR&WFx&2S|)qQKVzo)xdiV7kEV%gr(bHyg&-PA948lyKL%Pzt)=h zsS$Y!L9?pL!TZc1XTqSxi$cWBjbHY*tTZw1i3()cieF%(fh3Tun9{-dG;yhjy+*AJ zxTJjPsRXk5L$P;z^Cxw{*J+x_ai*|wa6m49oO)WSL6&N-R3Ur(F`}4-C@z%{Udrs; zmcEKk1nJIh=s|q_T+7v#-G#T7o`Heh_Vdjh^&gRB)mSGK1ZTvXr|`(@h%f|s39(|M z{JKF3GENdI)}DO)R@fRlCOhkDTRS`OvnOJ~#N|Z~aWTu49}DMMjT_*R5CxUF(#^9{ zXPSXNWNS##QMm`Ij}QEw56(wNDGybPi&2MBRY^sMAaa|}%kxcE{e}aNxOhycNz4j| z0sw$I2%s2+k-iaC60O6tSU3*~(vU@Hup0NPsp$j*?5t01pG7ct+f3Hk!3tGIJ;V@W zr>H2YakeZu+_0mBJA{jSk+OZ%z5Jl?beF*6r~sF!i2l_Au{H_*3kR_97l;c`2M3b( z0;OuU2_T#QNAch0bk^f4?#5YP2?1jP>OmqBfpa`2q(hf7?r;EvKg=4D1L{m;*LV|W zzh|!U!n(VjDcY{HRQYhX_^^~f0f61s>da;N$?9q@H)~0D1}#Ja?UUvI6U8FG1-kMbP4*V1mM=g%$fpl7iGl*^X;M)_Yu!Tdld#5;*FTc}+JA2afl-jDz_G7|wH| ztuA%>=xJGmHjk@BNtSyz{ZBE(W+!)kR@Sh^Ro}DS0AOzKOeib^v_&z~c>W+4l?PS{ z>3f5x^H`2M60>mdKL+USwCGP8w$G{a1-`pa6d8T38DQv}aaZ_V z&33k}RYlQ(UL)#^ip$8RXs+3*ra4>0M1#|b4jx5EzepZU>D2BS$AXe$W!b5LxbzAe zD0VZg6fF-wBsC$Tik?}W*K?7xd8bONO-c=3griFogR?xj1vHIfW(7U-HomP|h_UU_ zrfCIN72wiQ2^Zi?h#Js=Tieau(0u*N#`kgjb(`6YD2ekSHR#uTx4i&E&a?Ai0*7Lt zBq@__s@u)B2>Ab2>T5YyN%%{+8*dt{6)F=`Xj)3ylWAv`a;2IZKEp; zS50LZ&2yG(#w!qv!{cta?Bd(ET`WAj)L6o}@aW+k zW7tA&GRm;{3nFN%Q)`&&0Z@_F)6>~nSph6<_xQlD>`bq>Wbmyyjh9QkP+H)%wG#3c zH5M1P`JB%kE)#!lt*wG}n;Vxc~jhJQ?np->6H5OKk&{r*4z-vH1f=HI{zg?a%C z%|-y|`n6!d^aXBlQ`F2_u(>s0#Pk6I5WBb_T52g*c+m8KY+Y5;?eSSz)YRk;VyZ7F zEv=}lZY%ei9J1n{G%;#Xs(k<;yuW@eS5s#A6M(S>y#S0FlI56e9->uLd?EollA_D+vU{Zc8%%OwF6f7My4?f55!T0{* zUNN>=yl&_TX_7R*fryF|keRB=vJ6#43$-GOiK2ASyR;_1SlN@~aZ;3UHuo_ar zoW01>gvn1MBSEovRHWe&b70{62RBcg-f*(z1&a) zv%jX|P-AzFSN!e7kU<|)L*yi`6s$@8%w$ZSKO4>NO++Pi$ndp>E0f}r;oMlwC|_96 z!7)aQT#I7P*S~@@b=e3!?bvRo+~2FV1_|zNcqUiiHMq8QeB{uWq6srIUtia_n4@wo ztOzeFZEUI$AKa#a1JyAcSyv1n4K?2RtaqQ>PLKHS|czNF=>=L}D0-$ux0q`%a* zHVe4FI=ZZrGmx-s{gw?ICIv5C%qK}wC;o8wVb)I@R9#17Y4H%%!3EP% zZsizX{g6`C`FVGAdj6E8WpBQ`cfT}ucQJIdj$pX4`D`Zn2-iC%Tf2f2N>2iJ&hYiM z@HKH-LR~>j{I%iP^6K%rRg|4qzOaNCgWd|Ya9i5vAYT;FLyK@{Nr=A0!&EuV^vIcn zT^Gx1PELKA$4FqC2i3H2yO{8xngBbO5|Bn0Vm>a6bU1)?kRORvAeTsnbg;*$3K)tB zG#{wq+?z;LvF50g55_eUjSsu*)fTyJM4UGs0 zz)<{p<92_9!0lan-RLwd!56-9x_ifP%SuRz*d!0l2#CqJ18}7PP-?Dy<-w2yFeq4k zh>yVJi9Q1)qY;RcFnOqG!3W9FMSe-5z`{A*-QHba6QlCdct0PbfmU8+@RjjFb)cB~ z-ueKEG`u((9(xL2{Za`VS?_ZwN z+wSjslOaQg{l&ieJRjuRuD>jo_VAnMB&Moa&95lD0hy?oGRQECex8uY@B^m9I}Q6I zZ4My%7Y=YPM>{t5hr$HI&oL(X5vWcM${IGx9y+vM;5(iB4>=i9@*+?i<;sLiNi1#{ z27G>g$O|Nt%YzGE)5PIo(&UAWaF(6VOMM-b`F#%8<;D`r%w2FW6y;z@ZyXCEDYim1 zbXJ=c*09xPDPk;OT=KZnq9GcvWPyHn5q9;Iqg-Y!1iJA^gIY%BE6gSwJ z>fCPki!Lmglk4l>-Npod>(iH`@ylXNR?$LXsh;QV$`cGT@ieQ05f3db9+sM^3cU@C zf{IY74@JK~+(EX9J=a0LcQwc9w z#%&~Uh;wTpjyli)#1YV>G)H?rE?!@Ad8PUJ=IUua;p3u;vS||Z1?Tf(cU1?e&nK#B zDVTjHlTIve51zieBZu&5O%#K1f{+c>a+y{%TDJJ*p(DSqsCFdgDvFai+>6QaYh1Im zU%LWWO5^xLejd==83a4>k&gUJjt}%Q)4war!MHPkRD3qR`LoygW4VL=@Qx?DOkSbj zu`%jo&e*Y2ILfBLJ#Ek+SZC~KjV1CA)R@u}$y}Pj`gTn^0j2`(WMy1gS^$4=CXOgH z7gQe^7zt>qDuxQ3yAp}}>xYSUaAR>>n`EH|nbGs!iIv9RdW(ZUv(+#v2~>}^{xITf zinNpW6Xn%$`DZmMV1QKjY<|`RmQViA1;q37h+HRT@|wx@qbCs+`{zpUPtjB9+7*SX z?f5y1o{N1nETPLwyz;^_q>cEf$*8%|6=z-~xkAUA>$VkKoF4*oMog-f@?w*suxD9^ z&-FJWFa^6U62>(TRQegwJsPr=bwTbM=T$)-?YDPuR#xSDyvtvolLph&HIqNLEGrmI z=U@ve_f#0~bwt%Pydvb;XceaGf-A05_z;M4stJtavwtq=*%s+p=m6~V`kknt)uy3UPGJt_&J}InhtH3RRfH7aw9(b`Lwk2v@a|nwR!O*y zWJUYmh>TbEaDq*6j7YtG#=UUs_>(Ni#rL)1)p#q#{55-W3l#H@l{_=cEi`>=wQ zm!e})k*LjFPo_Wc>P*P9q4C}Gy(MU|pJ4X7cfC7Ej9+jj=0|E0wI0o;U9u1sA z9WNfx43B!*t6G^a;FnL+-dd^9drQ?zW)Z%MugqW(S~Gpc!t91;)0@M&fH`l^b_gQm ziBFfhss`>lp3NFWTcn0$mbg6?^nGR2qXllVTzcAkW}lhoz|a#oC3Y<|oflC-UPm-_ zd_{UB;%{19hvb6V=y?*if7ar6+u0O9Fyf%=S%+`UVKymb)dHiaYNhJb6`EC{u*+Q6 zaLoc#`Kq{8#0#^qM>h!%4RP(N|1>Vgw5SHGo0F4zLNYhtI(f8a@lH*GLQ6LB0VLpn z-mTB&A%Mb~RgoqgX{FjMDpGs~*zk|6gFJ{38kp3vv@<#=Xz0{5o%h@E8bg~aUnW~* zTc#PXq^~b!pzzVbKWJ*T8}O-tq45D9U`PhBp{A`bt9~E3|K8ji6f%?qB}IO1&-*O_ z&NLX9QC+~V5U8O+(EiBv4Z`&;(T+ebvps6;%wOd35$V#>aq|q28b6*2;&QaptUuGO zK9{e-lygIta|e~S2A6q?<3duOybPD|294@G!;hw46RKe(E8!$8AE<*WYD`9&&id;u zD7GYL0OvB4F8$k5EtX0P=5j6ia^sv6!jl{o4C&keYg*jO1dXmbrXYKIDwgC(c)_?(yD)d^+*_UZ+X*eJReOj0I5;ULl%X zX@4}$A#uXpQk^Ww^6Z4Fgyv}P-_qv#-NU*DDnz%hmbRYO_6h*x3jg;ObCrAW1xNEm z3?ja5f&}bMO>J$1jnDQbFC@PkNBpor1la4lYX_P#n&b4e^bXH<2~r5fwmf&65ASvPTlN`P2IQJrpMn-7n6^t9n(44Ie2GHO&mLGPxQpZ(@Lyp7Sgm9 zSe#fG^o(98qrXBrIl6N`fnUUZ@EoHd5Nov zb1TWy)?+oc6Aaa3baWM^R*g>14>$0*rv(0~I%9-b3R2P2R+p5^NQX<0h5r^+8>14e z)@}|N#cin3?q3Tx;GIba@KG^Wi%yU>Q_H`L$l>UG1gw9V)Dq=p=wWY&7&a%Ic_~NW z!@eB45pNRl2xKR#h|w9v%dB?&knNiXFm$EsDiQxF8Y5T_E{VS`LaJMc51g3eh8JMU zB9a}Akz)q%L-S(;Vo8X5fi%jt47AMn3K3*;qI2~o&Xto817kW`n_X23#UQ!P@0sI? z6@ZTbi|=UZsG&yM)m`;^8M1IgJ;KhsWA=MresVC|1Fqwl_jqr8MD{LQT(ldm^bW=B z-lpIi1LJ4AprD|`XKEuNHOjUUEzj=29sp2CMSer^Yh1V`D`EhyjU4UI6i;0DsxR{4 zy|VHb!dY=kGKQ=~0WqTF=Xb%EDfjcN#TChcCEJ{>1Ok@{w)9t z195J$I)1$BKk5w_GvBs|7l*!^U*L_I+s%1WGdogZ2sORn_9^dnEOO`c-h6`@@3Gxg z&W65s^ShDd!#sN}+UNWI+Pl+tXdndu8B#Miq|Dfu7!gOUnWq>mZlPAa$r)wX1g(7Cf0pMr7>l*h;!IhX=Wl%{G|NZruc?iB zyK%c_9Q`YXZtx2C)iOby2*c#Bl%lk(!y`jo&%UkmoDV-h?YrX>Au#J5Lgp(AB=9)( zDsX)`y?q>M_&qKgosDE;*;jCT!O?rz+OQJY)IqdMLOoCfB2s|RYoXdSgls7|O|du+ zY}_E~CYn*vVFBY=rSpjFzI*Fu7^*-Si$EEy@KXlOaO%haquNe#dDw3mnow7KF}_h{ zO04`Kr&$;lfF{H=bvhlY9-?A%uNCGT2`{df4~H1_qI$xPWuVKPq)21zWA0xa8YA8N zx@u^1GXY334BM)7_*tnS^Zaiv*G#YGUUEAEN{`y+UYv~qj_F;>;9`^`>KgJQY&0~9 z2?16@Fh`#sx|tnmLg&RfJE#CxG#2i%fbP#pWz9ZKRV5u& zc{#CFP1R}7=hMlkteSO$o(*qq#xf){sG^>t)b^m%_C=*{q3jHd6r2#@P=$W39IVvI zi3F0PvNF>V3MG_gGhhIqSqd;)1%8?lL~YF0K%TA;{-*&_6+~*}8Gq%=oX*SO$5OhC z#J?tz6>D%P%PYMd?-uxN_Q2@M_Pjsed~Bc5k*tH#V^>$VpoMp=)NHB}41~dX1d@fL zsZ|n6wMHg3Xb_S2_U#OR|2C|wDK4X;XFem?S!Q2pY3+QUhU;yy(*bU6YeRVZSlL*4 zVE}+v+g~rTOU>%c`urKm&?)h}pMQya2r{^xtYpT3AG+$cVpFJO6F5GG^VW^!G^{ZjVa*3=h7#*x`C0Cg1nxWs||I~D)cn1wYlwk z9cRn?sbEEOeQA5PKB&uA&d^g99h>^AR9}CKAmH;3ieApoM@NB&FSy3To7i>NcCz^r zbCr{I*%qT{>uhxD^u2a=wb7vKN>^T&skUgk4xv0!D_VZaqhA||v~`rDPFsb_1}p&Q z`=lnm17TGhpf)s?9z5-imB7j1&>1PL~~{m|mUm;~;3S>bL)9)%|TyElb3Af@FV0%EegxqU!>>e27!ndKQ1*hNk@2ewEF52 zm7AtCpDsdDWcTv>3tC@M5aR97w1kbFHC1wC$QD6VCk#uk$-P}h+_cQD$0KS7!N6qm zZ)m^kTlbgNiJ$u2-o+QQU3WQ0`fTOljyIzkl3Ey5_Zb681)PO^0ZG7I;_6=)bXA)Th1B*As6n)m z#@n@}vB!i(AG5!93jMS^_`jKqLPdB~P-u9WOI!$L80TG)AN-3rACQ{ezGEq&nel}$ z>woy2cRgvStUrET@JNb7LNeTM@f8C8Pz26+Nm|g+h@S|cqD#Sc!Jw1C!F4^+t)L1t z8((2{z|zQEow{AwUw-f#^MCbz{NeehX>1xn+AH<=*7UpM#p?6p^*to%>Pnb%T42iH zU-_4st)!puWsP-}PP^aZBz()M+sWT&w%Vy~olh`b@0Q2?&C`~f!a)$)|hOEaE~KRRy?=T&bN| z?Wr)TQ#g6JCgqoQBsh_($ec<-QR*n1v!QIua9m0X05N`&C)U&5;!}t3xvnuy3s8+- z{z!;s2;{tYL3wImPzv@Oz3T(UjExvoF8fu^zZjbA9|3eEdsPnwj3jW)!8hNpY1kQs zZ>U#JA*N%^VWL|83~GW=04^~Ik&JDO9Mmo0klRCCh6eOdSxmJgt;__zu>gizLj1T; zavwbU-oL5@g*v^SfJxono!;-A-r!zO@V8f3m^&E%*4+$iVrg<}2L;hqA=uK%%3onP zqfjh!G0~bEgR#H)1c1ml=sOtbm>bLt-ipt;BVeo!XmA$N9;SFMdUyhX{&7L!Wex33 zE$y31awP!0WfFlF)KoL>1@@m;BedVH>_=ELqwNw4m|)zuLQ^-@GR)YQls84C-63GUA_!_G0d zvcmTU?H)Mzyg%2e5R&!nMCbhm6amK7z)qZe)MH!8^zn5CrDt=&=k`w8ZXl)qHX4n0Q%vli5DlUcY)^E0SMtaZXA2YM=OdY`$O2 zR|}Zodh>st3qM@IiVk2V8U_K-u58H%22HX62AGkqyrfwCzZU(T{%Gy$L{$){yBbJe6+wYLJUE<9 zVE%Fc&sW}6-j$WUr(Tex%!Fkwk@&*4i4^`3?6qk;LBWCe_2Td8B#vc}C|r^J;o0CIqw z#ZSZS^a)E+`!#z?&V%@|ztdOQJnIT0v?NJv^T*aAcnBagdqM$)HYJEje{is`a?Lrhu{GxUe-kavjEw5MIS6h`!pj}@2ak@=mk;F0 zn5Ur~9GmKmv)EsX`5mwwE07cCV-PEv04+*fJd-*5$-0Paygl-YYbahP z%?CQHzTsF&McCCa$O~j=csFuCm^j?7?kzY8zfMC4et6#yaNz@%pzUSByQ7%jpV@eB zXlWSY7dclvKfiZ<=$bz9{C;97Am|0=-9GjOci-83;8 zPIl>}d34}Po?O`_ z7wg+Hc|UhO9!?hA`TP_S7z%MFv@Db}Ibg@;D92WAx~b`=L^ z1-F*`nNvzEZip@{2wpKteRm*FBB`_tEpto_@`RN*Yz))J)fPak!VXx3mn@^u8rYk3 z`So*=Tuv3tl-R5~s3Ev;Wk4kh6_4l`QZ@^BCmbp9I2T11MYLk)Jl7qDW{U{lxD3y( zAi#~SpN|Z~dZ#YA)|~)%c9nZchIzFQwHIiPP=zad0jUEE0NgZt!ns~^^JzAM!n(-Y z46TlpbPD4e6FVBHnNhYc^+2|OcmACj16y=djn}JxhexX&cGFuvo$o+|b1c-24uw>O zYt)?DR$yp9n3fHzDTFj*V=0pap%HbZjin!1acz0Jf;q_6?fdET7K9ugCN&m128z9< zm7*&P;Ow@KWSf&&>=)mh(wKhz?`6lzWfGJIsC_cAQqD{W#>bY9!#sX zlc>3}_~Nt+#!WwJ85t$x1qQ(a7nVkZGWYkprGzi-!BCVzM8%nk(7zdZ!8cANbQT09 z0Tqx*pENn27nfY)3*-45HlCTs@6c0nln7 z7S+^M)Kyi2$dN7tGNU2gy`Wy(UOhBBR(d0iZpZ5TVIFU8ZeS5^r9+A16H=6y6=!E> z{rgFRr6A`Bqw3fsbyCS$sHQ?t-XNjYy;@z}mY6==xt<Y8K zV00qBJ>`OH@q%;gX~(=}M++VB50XU%ek)NWK;Co_13@NO0$Rw&*XyoN;J1#3gQ%pD zkD0!lj=qZyatCF`;?FW``QpX>u~S9lY-LBs#<`8z267&#BBL-dM*i9cv9eL3nPe@ zCRChc1ss{m=*dd>=}PdGXj+Z6jUtgjXX7~2%gcV=UxI>MPoIwk9k8-6v!cI5o3OHy z(iSH#7EyX6Gkv}}yg2Q=p!gnbdE|WTxS`!Y^EoY@Shw`9MCD{$QI{afRl2?3z<>uZ z8ezxDj^I`X6*hVc2AuBhcUo~x8*x1?^d|iH7o3@Y--@WcvD2z{#uu?A?fewz@I-C$ zWG1$4HaJ7A^N&*r3N|ZKERu(koQaN#X;#&sr~dk5wyJ^a?`yE94y#0P(dzSTb$NwA zl5v$d1XkIT=gGj&+p4L#5Qxa^ISL>o5u&PYWnL%$I9|nMr*4i<6Xln>+2~?(ztsgL z3UrzVzLVWUVt2QqSK0TwP0js}?0Q+wM7I?DzmhAPLA(1YpnRLs?p3u~eg`j$z1jZ3 zgf?b{qmt}NIVV=oIjUi94HK^Utb$MV;N#=$u48dJ8|M6~4c(gMLn7xYhaO%DNGYF= zR724#C&I75Yn|cdo?G#2_IXzRJ2O<=R~MW|5M@@wWzf0gc;ota$g9iP%}&tI_~^)w zjdq@$Y5jzw$mu|WCrUjt+x_a--P%Fd3K)fDi;8v(n0*| zb>pn5P2;Q=OYtVA#!2BL<){x9!1WbEK$!{=0ZcL5s{D9<_A>tcZ@;VW-+S?1ta4^k zO%TUVOB~&JV%i?!3I^*k2J0%%8Ep`hL~l^yFgL5cltA?#jrPD_sa0v&Jr-3aK+&mP zrSpU$D{g`BnkwUrlwiLq`Is2vkOUWcS!}49tP>~}%aS_XYS+d&p~^X)(ItVw1+KYP zmG1+S0JoNOMfgTnp)QD0`$v6et-IF;x9o+vlS?NC|IiTNDm1jge^C3Ba_xj#Q?y{B zao;94%n%Gfu_b{L`w5E7)j8X(iIjhb~`g<+Jh;0y{!Pf}42B<2^YcT$6;N|}O zbbSpr)o^4mJ3Ro?dQJ5C(fJPJ4)q8zMNQG~B^+;{swAa-mmB{lwK%M`xu`U|4RKBy zbC=BQU!2DB$v0=qztKWZw-?)PQhT|Lou&Tuf#t=8!P%A7dEt3&?O_SQi$+K=LN-q% z-)dm>w#~bY!)k#h`-b@z=D|MJq_6JziQQE|eqE`)om^hao_esP`OYNBySt~FprWGP zx{T;gw2;PGZ%e7xvr!ZS9F6baahATHdj|w9M1cWN15(4zv;Y7S1hPZO zqTfMI37^LGrL3z(bv&v7z}}sCD=4dbZ)^qJ)BA@h;f^@sb!Sg%lI9pRp~mp)8UPnn zr9YDCSNcoPh`I2f_~1`8SXo5n17L1>_(t0M4ni>`sW}#`} z5TJ^g&R0=HTUB0OS^9^BsJN1(teOr8ha>q7elfWJe#gEvua0zhV`6S=X?S*PYIJJ? z+$!?BxoxRtnvW0{yP(jQgORPLg^{g?g@cWYjd`wu>cNis%awuO$54wKGqItUJ1E$< z2s1J9{$8yQ7Kkvnh;sJr7Y^?V=4e^NWdG3OX*uUjM){bb(L#tG;!o(%BT3$G;s-nV7X?P!Bc^QMd0mgErYfglK@)?cD8iH2p!adpQ^frGd3e#1p`?F1Ahc|nmEEVjVyzq z1Z4s|LPYxM>E(9U+?En2CzlT$7_++~L+`lHYafrJi2L+K%h1!2e3l=vhsEu}(5Nx_ zRTl^j-S)iYcCON&^d$B5+%3xm6bj5JY5CeEuWFhQW{&yb??Ab|q?^j?{J7@0P3786 zRESUM%Btt5QBk9Ty^yOpJ%^_01JdZU}Jqg~d9 z&&f1GQQfg?#M!(o)GwRvURU$%;_<5_^{OO2+hwt8Bt7!B`B%Umc~{8+Kqo>>+_t9m zbt~KTbed`!es3v|QwSOB7~d1zI``%8Z)I1kdpy~CKWMm8Q8?-r%*gPp=l<}vI31ef z&_t{Su=L&|Tw+#%>hthXcc*SzhV|JgV)$Uz8)zjIfCQ@a*&R#nkCyXoXAfpI9N8T+ zj-N8~tK$~~el0P&HUeH%AMZ`ovRu418R z3op|xTxP^IAMWk^Z}8VitDvbsO|QQmXf$>rgra`wxO~GI3)VdK`Ne$YXG)I{O8=44 z-J|s>_~~WrX|p?UNcx?ctCfFIU|0^Jq7{bjF(nU?SmqO;E zi)#9_W*#2IogdAoRY6lq9`~Ei?P9el!R^Vm`hI%=Mdqu^zrzE>RR){$``YpW{R6~3 zf(BoZrEVf$k5m3gV6^##nPm@D6PpgLOX=R7~{?&Idc>5i%Q6Rd>% zYCc~t&qb11u`TCkjdZ>m1TqU?xdL6bVo#Pw{~1w$07urVh5S+y86NKD zd~J1k8KM(Z4(+;{ix!&Jhpx@i9Ktae}fhgxGYU*nKBnwd!xydAeRF4pDNa|L}1b&BA$L>92l}K5RtE@dkcQbC-QrfJkc*YXWV*y0Pc(OC-@_H&PYe>>w z)YaTfAGa8-Is0kG5pOQn8s8pj-7G1bpHh3QDKhLQ)h>HIIeNlA z+`)#jHh5gT*c5e2Vh+jgUA*(>PIwUuq@wz|(r!xL0GT|l5Hn2E#b(tg-Tv8(Uu7;H zasyz`BB@aZzkbN6yV%Ky)5on!m^2sHYpeW0a^nW1q77O?m*tjo*2g9dm3BX!D}5Ci z{c@1@^uQ|X4AxW^&##j<<|7{d8pjj7>J)ABPeJXH+G~Go`zEQ6m!)wan({q zW~56YO3>&&gd3W;ZtR~aT^SvH(qJ;^^u9TtSSUfjkz8nO#KKHsdidVmwviSbapL{T zdC@0w{SuZs&R)X&lThGm>1|IZW|oV(S`PA2pzde!a$~&2QEfw4NM&e2 z=K(8*icD@!OY)L*YjzEuzpAcdx$U6cb(ZP0&fV5@>J}WR?^iv-QN1#od}JQU6E|7f z@wK>!UkE%%5Cj?C-k_jF{S~~wpf^6LskXXwvvYX7e&ZIGxVH7wMI^a3)RcE*vaH2= zC1-8wXWrX~vX4l0tf}8$BO2$jfuQ(1eSSDDjZAm8#23mwOPa=0oBC_88O{Y&$Ld}; zJjgGzsQdDgCtXBq8MAA%r;$1~ly*~2L=Q?G@CC)6V7S0L!_YbokEgfg5T|+OeSoq6LNziXAxwc=~6>W`J1=b zRsCoFbyatN@B7fNi|;OeZT|?9=H>`2Nw}L2;qc3LqDvPl;}wE_`P9PBzeD?Xi_jNV zD{|#J0qJ&*5NP19eZRP%BFSFt5d<+OsstK}kC8Y2rim{uPgg7$TY>Q#7G%sp>gx^# zROS_=))h?FMeSQiOdkF6Z>{0!Am}GBIkF-79?tY&&T;_&agqSr#uDk7*ya}5rW4tw zQrV_MA|GN@lVe$pYhU@zUoB$Tdb_HLef?Y6Z_ut0PN2$QnmFuZ zm~`a#c9@Xk09iLNie+3XKAfR75%HOHCyiPPsXz>F@_c?e$f|Us8e+S$l-;nuE4V{C zq6xN0=(Vwy?D{}RGM4lmoF*Dw2!4Gi=hF5rN-Su9?NnU^IHKjYKQNU~2RnSr7g9zj zHQV+gA6NW;sVSP>dmwwl&V`)JlwaxbKpCZmODY7`)TaC8z}rMl$2jiCMtE7INprqz zMC@;I@1{rgdEzGdx8-Q3?X#XCzo2oTOcB&81Cs|)!#?0r*JwWmP#t@;0u#c414`Q* zU1aK&O0uUN=NJnMtc|pJ3sD9i)J)`t%9C1fXEl~iD(fQ(B2c6x1!lIOPA~0`%kh+| zn0g2LGyNkbzfZoN=I)ofrJ7!xTT)JR+SVkVc|CAzCgdipP%W9>N&u0v#2Qr5p`=-| zWWexOW2&Bxn2;c8PI9V}T)qYsraGGJiVU!u8RP+D>n^0rYlQ#yp?m6w03pI`I*iS} zSEim_2YCckc2(HW=Xaxt_ybz(8A3vmK1otulF~L$)}^tHGZGzSvfgcAhV=i`pU9i zhu52i+D{55q0iYtgz<3_p{SS`Vu9bvpr5Xk7k96>w|D-o$*=NLI%QM4M9%f0jpd8d z!5Nm}Z<)GkabG~$h1bmz~L`-Qpw8gDw*Ek zHBP`#G`a<)Eg`0VsxVBAwG`Zxtf?78*4=?M^B{yRa)W?z3)urBZc+wXR8r-eEDpp z4}nJoH1qMr20E(3B~NT=GZN+2eVU8JgGW>|_~8@L0m*UKk+OvJIoFkAjpfz*5$52q z08luc9H^d79tM1Ik%P)z1JFTTT}lCK!Uzd@jF7EC)n9i?Iljbmy`a=LU#WJRw9A z;Nm{N+#NAje|$dtk*9zq{^r!^`u@2)HCfE&EvEC9;DFnb5-{x(-THd5Uj(=H=L#jJ z+nw-Z+sUK9>aEGTF7Cwqq~;*RHq|s%TlLkEvo|VlXT7-}@d|qR(w- zx3T7{K=m)FhRtc4CK=17wCb1gF(CJwb;XKD8?LRJ zhmEeCsZGJr4S-+jEDy_^ov|w?i+xdVR-AnO(ioYQeR^qMh{)VM@vq?(O*_c9rj_!d zWHEX$lqnUMgl$a|6N+Q{plz{ISTdkaJ~96mnB>QOuxU&0$u$9Pv~9qBaU*hZ=) z+|PYvbJd7_pF-*D_4_mDvi{BD_`|Egd;d9{%*zJcR@O8VSS+Uj2lmmP<%-YZyZmTB( z9cyYe4=?T&xyODe(tg#>q2B%(OJ^jEow^^N#-_%*Pt1U`OGFMcP336w?^?XQl1<3x zK)G|)WK>X!m4;PM+AWyK{hAd~{SwAq5Zxh%#~nwN(+NK!204QUS~T-=+omWLne)M-t!Y@6|$nUXSosE7W5xhVfUinV|9+Q4f7oGYBW7#2_pUv1!?%UXX1^ zf9#*aP%qRa)@hE08w0H>q45y8qY?G==0|?K$uGLu^l#dwbpfavP^KmJm-$vlReKn@ zN2vK%=;1tArj8ss!+VVZNjX7rXTD)wwb@xg{tc5l9>BRn-m;#vG-bkf39)3rhPt z`7Tquuzk`5EJnJdv{yii}M-a^Sup0sC-)HyeDE)x%$FA^Nl8gxUtbFg3jiP} zIGEDRY@f4nep{Llo!^IFDPaICd6=9~k+Mw!6@}XT*%7Qa2N4{=gB*zf0A6mLfHYr?e)5R5+|OovN^nZ`rkx7@FjxKO^v9oW^l@`=EC3uBz#K?@ zbS%5)5)WDxy6Dpka>N|M=y$fQnr`;JE4$<*kt|M!pU9x`&(0H4RZm^{gm`$_!(y*O z#|4r^U6Ew&5&L+bC8&PLnyAni-y{N+^*lvoB*2CE!bhy^!^xFZMg~DK(XA7+^+QvZ zvaD5Y^gZqLB&>m26C);#-(+p9HjWzbq33Yy5>K<|a1X$&C~+S?N*Zu=nuSVe?ju)y zy(Q`W>jnWN09#`bJRsQi^)@nE1wT^{T}}PvV8d_3Su@#tVX89S=y|U!x}R$ zF{;GLQ8MWp0(DDn>HV0e$cNN{`Va=2=%C@qb4?(MD2~xLx^%^%;t;9t-tW)RItJMa zj0LPb4u+jBjdd6pn|`;?H_T7WhBn1<=(9K}2B??JS?_PdqZL~pOujc=JSQH;W1s6m zdm}+}X-XOpSGI4PJda&G>v!*3SATjxsq+GB#9)S%?t2~xUyoUNc2-+x0_tQ zr2ceIA74%n>7#p28s2yKl32AsHQBzOSIVJ@>$8T;nt;yyT?X@)_x1U|M=4LldhO26 z*Aqr1wW+Nsq2n)8r|o3@%C4Kr>W4)k`PH+G(9%~mBtk@Gr$u|!P1qa9G(>ymU%~{X zt#j(0MXXPQyi=BTLruv6!xpLJh`R%#Lm*zb0;!F8N^QfQ(Q{eO@1Op!0@^2gn1>C^ zizaAUVL_|io$IE{{v*@MrV|(hLn20bp|l*&W|oKFPH2$;21W3P{3yu+i zz!eO@=<~u441n>mee<=Z-rI%>tg6w@@_F+5I6Ga>_!DThKXKq=3ZQCuF7b6^V(5(!+zHniALUd|OoeGNv{kH-l%lzG#Sd{M- zL)zkG6OCdDi6#?CH^}J}nt~CbLVYqY7FCMBf)6|kuA5gOVFWXqs5X(~_ku_HBB^-# z6YNMOV94{kP)A2;-eBoQzsGFn=KMra5RR08;u^dDPPKeO$%|X)WvrNCO&m;@!#1Pf z!WLOK6V<#Z=f)M$Jg-pC9o7;;xq2#y{YAN8xDiT8sX|4h9oY=n*fmt+vt2E^$b#&KcmEume}a`z|CO2nQqADPrwsj|arslc5#6nT35` zUc8*|o~~|-;{rVu>y!O|agnNM30uvP$4ftnE8`n)4<4JuNK$QezQM*W=|%y&CnpOw ze1e;le}!?!o2$IUP}_SdC;I&33LtwEEqXCqRvqYh;Dp~;%op3c4SE7)E3mi z;uvYXExBWW8KJ|ct7G7~LrY&5M-A=G-5@LB&=9jxPi?E#D2=;I<3M^o!(`o~TXHlq zSM%Z_)*;oQximWi5KJ09F%GpC6ssCUiUU;!Nv!`2YP9;~{kTh{G)O0OWXrE2d z)WAdE#M(`RHe*fzCrftHh-=UyNzD}rbCGK{{cYEI4DR6J$4h4a;m+76{YsP1&Pydw z-jl6>oGhon{)8}5alG=3TBF%X6$o%p*kc3u!#U$v1#{8Fpx{8$9 zGR&WRp(;P*=#GGtU_}JrNeT>AvP}8-%k8bu-{WuaMwC-E%_yyO(uwEg z%zC}LUN_?)bkyUSm2r!c?Sh-`i1)s~{Ipv1R3x`W-_nh3?=!9EmEHE#d42ACGQ)q# z%5us3Jk)Si+t*3;IZfXds1?e3 z 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 literal 0 HcmV?d00001 diff --git a/lojas/google/p0.jpeg b/lojas/google/p0.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..7d83d443eb846c163e14484297b0a54bcecb48ea GIT binary patch literal 59256 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%0A+BK!%yY8%P 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 He}DQX>`_F9 literal 0 HcmV?d00001 diff --git a/lojas/google/p1.jpeg b/lojas/google/p1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..9448b3d26598792ee64fe4dded502b79d78129ca GIT binary patch literal 58713 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%0Dm;6aGUzT1h47hv=^9dEp;y# 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�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 pxj~w5=wV>i4M{!T_Vz*f`t0+ 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 z zVEZG34a*@3rFskDkVNKyH+f4gYAtWLFy6+ng+w&Z6ahS)o>p&6{>*ax#S{3 z+6tJxCvi^Wj<;VBza^iO+4#gu+!sO|aqNFgJ?EK_ne#Bk&q)+u&=(nygK#uM($OJY z;$(|piNFG4NQ4$FHJ?MU0SFfwgem~aA&m_9o{P>S#3-5UnVw4sGKV+>@JGfDfPmxX zSIEX@#)4h2EKO24n#lclv~q zCkKG^nfI=O``dV60F^`hF#x=DRwx8ubw2802N<&4>!Xp0R?Wt{r<;* zp&qi?az57p;t&q-qWo7l-{OKSVw3?x;9sjP@y$n)U6=g={k;gaq%T|}Tky^cm1Z~v z4>Gj0ewPJALMyWq2!;!pFiNF9MZqaBaD3!`jBR~EBgXD>GQRZ%84PtOnc<}(GS=?f z)bZ)&a}0LLw5;fE9!MibNhup$yo&-5ZhkT+W_wb44goM*akO#Hb86~$zS`n@Aw}pr zlR}_NzhEHl#`P@k;VDcywM>;@*EkQTNOCOc;ukamm2-ndjW5VxNR4w|qq~rT*A7pi zV3S@1>;NjNRyc_m<)g>@XLQB#|Lt%OC*Q2!DvuYlqD2$( z{NX$pFeErsr_Yy!3!e2bsKK(!w}0aHnb3swzcD1LjBFnKnM8#E;qV8W@G>AqIfe)-{^ZWT z!6Ph`>Y}$?$iW2x`S+Un1AW23o9Wiz-z5B3^xqozcQx?)sp#h#312Lq{yH%E{-*!? zDe5;d@K0wu?B7%Wo<;!>x&WiFUt<9dLncB%1HfOmmr7F6`U42!fVdKn8Ty9-1bJjc zNdV6mxQ)tKCI{U8-R-}p8UI@T|0U7$Ym4x&F#D1J8I$$*4*ah8UuS-=jo<12P&2_) z^K@*#kX6jbv-)-3AXk|Wp@Xy^~sUL3V6I8y! z9tP!T6Vhln#|SJzd6pD8T2%y+UOSYaOoKuKWujyiBupmt{2u^ZXK8?J=`BpP6@TB? z_lxlHH%k120fu5$p8Pd!1*UMv0wxHV9hCUcinpIFyv0G4;l z7-;|rdcQ7m_dMwWa2d05za={upbD=X1f3bA(boMV^*4NhxPbi$S*1patJKxfDek|*G~h@Md{3(yn%0RH{w zRAi6J<&04co^h+l@q*VsKSv8NOhKmS80Sv(ag0O?!|kh_vvBI-K?J^Cv%U(aKa~w8 zRt?hk=Ar#cJ;yZ1-TnR&?_8*lEn$3jxAD09r~0LxJvs@=?zVFwfJw1*Fu*Z_3C^iJ zU?&=R$8!MX7y)YvY+74SIHoK3x^lxo04o(Htn?NuO*^!-9lvyd)d_4ij&1dePPE@w zlw?4M^b~@JMkbB~Tk<1wfWS(Xc)+S6WvTKw_vUb&^3 zrJ*Aj0*e9IpfmoV;c{?wGRZ)JJwymNI{bQJ`zo+c12D%pSdm1E=` zm<3qT0_U3X!7A~>Qb4POVo z`wYNjkU3j1Io<*st@za+!AcuZ`rfPU3bxZdCUi{ElY!cUfomc$Q`%p{h-~AB7|MS0 z2N4l{6Y9y)D);SRVE!w-r+z=){ncSXDd^Vu)7*;vDBxd?vUAKHC!S+w`~^M>5jup+ zY7&Y(7(&fhcPL zQ4Oz?Dh;0La46N%c>`S7-2dgw^MXO&YjBpVw3pQ}T;Ku#kKgf(TspG=Am{&-^CY@C zyf!#5$N;+Oc)ywooQAl20Noct*g?=1ovro{;9U8jo6E6C=?$DlLbW{{1BqS8@lm`AMWdH{m7X^=+QxzMZii1ny zj*$ZmxA<*GKLQ@fyV0~#WvDS3{!wpv)r>Ruz_)=A1VjV`F>tx89p{|l*y*v6DUkKM zfkS+h%A5V6olx0k%56L%;S>)n00Pq26^JwWr9=;-myuVUYV5l@naIhhPc*-3 zgtkjl$%h}@j;olQ?kFwKy2TYxr92%-zgC;6G@4wz5Um?CwlLiJUH$u5<~Tu1M;oIZ zZxZtB`vks14R)N9*d;bOW5`_AD>kpW{PvphB&?ao0zG&u0(FAdBXqYn$n{?J$kRGx zqeCSmCi(BkzzQ)sv|m53^X$9jYmx4*?bpL@bldpDix_Nwv{o!tjRKNJir{sM&<`29 zQ>Y`i4TmiW)E$p!T~)Qxm1cx}=ao!Mqf2AMP>8X5hR*Uu&{{Cha5M{smPN3w7DG1L zUvdcGwzzXuU?vN{QaL0HHSa5)<+I7J9FJ&g+w0_=8}%zMRefe&M+p%Gvg(6ceDX{L z-^bSa3-b7^8J-qkxil?&Uw{a5s}E4YvIp0FS zN^P=&xx$;ZqW7r>h3h$1kYlWTtR7a+<$hCZ+OhIfRGq|Cc+YZ`i>oSfQ;e?BAUpFo zkLI50qjsrON$w~jTg1{}E_0gYBo6Ifs)aWz4#}h`bDxP7r5LB~dJJu7sW?^&)8+>G zX*=;vkIK9!$Pa2^xqJ1oMh+#UNKq6=C&81ZisOrn74=>yJUK6{nML)QuSO<2P$aF7 zpcCAHScT(;Vnwru@xPax-I{Utnbv2cJAJRsy|57{)#g7x(!iSy6%JCt+>y&)e(3l< zViPBB8ra5@diG(_X(k}{<=|p=l;xtV&`iqPI(O< zQ)JfkHra*#FDGs)-dUk`{mhEhDs$UzXHN3%1Pl4=O{Mbf589ePfR^%f)n{6dbc^E6 zBE3iSwms?VroSjTRqZ9MS%2W|pJ=fXB$RO2+nelSuYWnlbY!Z+E~NQ7+L@Q3@duC- z@yXC9T4mJeL7B>vnX&-#DvHPN5V(EXZv+H2Y4FrjqVhixdo)}t&+)0f;1;em-flQi z=8`tHz5Y`9H%2*%zGObz!jKn}22-^;GC_D2_;qutzr3VM~sjT*LX?=0E0b^b9`kE)fCrX9+>ae8{Tge&86dr4j2@w6#h ztZBa}nfjm?^4O%8?S6S6Kc~IWW-a_BT#ksAlYX^Id~$XqoqR2CD0SoetDw1(8!20F zH@&5Oy9*0IQY`euEG_v^Y-@|ESRG~F{@gU@dET5LWd$@ivv zZy#xn#NwR_J%w!}`#stDbh{5)%9ew;=1doguQgw$bC1ULsZ>G)eVJQlJHfjQ$sMGn zDfQ8UE1}o39%K{p9cf)je!z>@l&>u1@#uE+7q#Lo{L)SJ&{9JinHveww-GQFLh@f) zW?Pa>h*1UM#u6h2Y>|?VcpHml}KEIOG>g>(H@O|vfER#bC{TGaxca(9h)5#yf z7UN%~JtZk4Tvc&ov-{*AZuF)7dq*M1lkKS7Dfu6O7zPJ+KbDGc6Qad4)!c=`5yNOihu zi_y}SEZUv6)xy={S*3fmNp*`>tHo|(Ga&`3^u=z2`X7^+-I65j_a@A^F?GrM9>_46 zCo0PVOr%!AMD47Gr1LL#HVvw}AHBJL!mhcDt2Li=YZx2TT%R|^ZQOZDdm{Ybk!DMy z@3?TDMLXOIk!8)i_sV6w{0H#r@QeP{W}jGt!1v$KPD)z#ypg^orAfD#2o*fpsmqm> zWo~JENLe+m6Pz(vBROg*UZr&xAvwx!JuFe(Bb*={YuK8G<6TwAe3}v@Q}P}Dm2LW{ zj>UBeGC8^!It%SS-)u8yXwLhv2qmspB!tx?9;pFG^&ZytDz=Pug{jW5{pIfCDni|B zI&Z*8LVkA4WDyh>9BcpzgrwHA$;sq#_W}E|Lgmk=mcCR0wV`h_voY`;RUk=RkE2y( zX~VH`CBqyoOSZgDuTB@Gh}W=nN(dVuqTh9plmo(c3sU?KL*`RoMAHS=DcnKb9PeB* zSgk7iGI3I5_{C&|4Lok9ZkJ#+H3|V?XPT5a{NV?1A`vN9A!-!20s}LfrE?Z8_&N0i~G;isd+s zmK=T|A0>q2!E5oy&q(ESPyW5kR?KD0iW zfg}<<3bvlHjITeXkcU1M$pu$wAx84gS+)Yx%vuh10jg9gs`BAaVs%Bydyl)YtWpAQ zZt)Y+Icwoh)EC4?^IsJTC6J!HIv-kejM0^fb2G%d&!o~l-XdG#fjll2l}6Ot7d&lP zt+x7^>~4&^u<&Vnov?i(`)pPJJ6k8!0Pq%NnDdFeWdNGYE=vf7oNP%!Jg zVzX+mD&3Es&B@+&)?zSXy@_U7sC4}qfT9&Y&!&xHN@h_?J{I8*lO-PwPshEgO3{h$ zP8`h2%0Frl1(xX66uEx*gW9f=1qV%D(tF#F00(>-uA~$vDVk3@ZN3aqSgV_rZsw`9 zvpFF}hDx7BWN@U_I))TJr)J)mEWov4QY&iNrn;9L$h9DRpY+Ri-W%$mQ^Mz^jr!=^ zi<#G|XMOnno|EP%Q zy<$N}V$ma$N5cXeCJy-KH{LpFkyDG--H~H0w5@*fK`VwAH}<^FKy*R!m6n$t<+>hJl@=kDbxy{t3j%+2-0hwB~jOS zS5zCOR?n=rM$4qnUqlJCw8tMaSQgPfjUtfmCbsF9dypTtgtK7P5(-YD%a0m39hje8 zW45=_j?o$$-QrO)DJ9vblf70wq{T+m&D_mI%8#H`5l&@A3{=nTrVlC7Yg5QY-%iP$ znrfMozE{>wJg`+ZjX<3r{Q3&!nyq+$Ei0cI+ZIM0Gddwms5VWL$|j>|)(U15&Dq7; zgjcD#82MH5$us+De4f_u!IA@2OB#R0A(rQ&Lp({c(of|5pB8zz8x;7PKwrJrALT4A ze;zIw(C88F&A3p>XsL0Q@ojMAhFJNVKI4Zk4xTm!?jlCe0mu%4M;NJJ7xHnC5Ml*t z`M^~za(H1eQR}(AQ0sTes~Ogx*?T(c>a;U~PEcdjDkjNh6S%+6X2=z4i9%ErqH+v5vnjRV}w}g#r#J8e;pHH3sIZBBA zHqOWLy2k+?B{Q~8I7>V{HjnMa+A*(j&RXMSE&H>X2ngHSRbNxr#aqys{H9(M*?vd< zX*FtCmG8%i%BCt`KDpBZqdd}6pGVpznD@b(;q?2_GG9i=Elg=!+#hOm8Ej@lM~49R zXX;(EOh6YpsfDkSWq5+>VWi*p;nZ(^6ZsWL&BM2@gk=yIS%v#&92U&Ao3s@P(&4g| zXAKi&D<&3KS4FZC72Eo|UU5ooDHHf+^nx=g0>K5N`R2YMt?Rt(G<_6qR^Y2X_|7Tq0a13$te)LvjTs8rhP^c$FgB&^j2#Ugo=nWah0)R4 z(O7SC_Ri;+d}QLE6mJj>2FbW0_y{Sg86mQUS&g%JXQ({&hddV!+apyn=BX@k!0r+_ z9uXG2o)Fu1*hgK5fl$5giqUe7dbeWukc2x5^{ZNxko_*q8=cmbPn~YqqC4SU0(%@e zftXW9&QNW}Z0_!z4>^w!Hw@iroBL><=v9k8NxJ(fjvX$E`;n&t@oNv@N zs>94v78MT@&ZCkr70>Dk{K$S~gpsB)vBC1t(NHU7+h<5#ZT`>>-+tk)(fdT@hu3y! za)<6-f9E~;VL`Dl`w22dRTM{AVV2fQU#!=W!5YMVSGDZj__lhrVpyBr07;Uj>bJpT z_oEgQLbL0^_tLMVh%IiF3^x8}6X)ukyJBrRKyVkWh`r#wVoV;NrfcX5`=)gGxoqBYs=* zuCZT+RAw0+?^_d7|0t(`59jwK;Gczq-XnG*_KDjrv1Zv zomZ!~MT9i+x^65mrL^W$FMT&S$scEogD7r$Y_eIM%9{i}Lw@S^`i(IXZ)=y%Bj+L& z#agxn;iu-r9|?FHjOl3|5UZ|O()y20+Bw8!b%)(DDr3h%>KlxtjpCh+>*)gFO4yTx0oG zULP#!`d#V?R1|p0$5yu5a&wGt^{6B??PTaERh3)06r09qyGty^`f0+heO~Il`le{T zK0d#TtyEu$OP7Ikb7Cu}2(yNvG+A-VscMqBbL;4(tt;}d>}$sNDTl7en|M}S+`E+3 zmQVRi4ZJ;KAMq7Q$i6dpg7yO_psb2#sZHthD{yhLYu9@+wJ6GCXE)-ISdp~*`UPdX z9f8TKO@8R2ZaxtsQTJK#13|GJ=865al^;N#?#s5qUdMunyKS8XvZMB`>P?9R#h#As zzGuPiq~YZR>Iw@@>7S^mYwSR<+*-Rvz0%z9c4nZ8b_DaWa(#^%Rw6PKr@`*5D1zm7 zLzIC8n(SZ!F-KS&8fJY}Zz8T~O?YTWFh2(P2YWamtIvhm7S|%gte*>$MqHJVkDD?eA&}f2h@5sMTDkeLYvR{ZsAe_uS6@$n7sR%LPmJrF!KrQN5(tkgqkz z3iepK?xGei6MCJ=p7O^41ZJyOld8b?TR(t3{2(qt@MWKs&(6MQ$n40j&HIX&Yiw0a zwwYoQitb;Z=Hl_o*3c`- zL~wY`i&bI?QMaVfz(9y~V_RDLrk3=wPWN6&GiMzG^W>rmg3i;@URT-{t^AIoAHdgB zH!mI^fsAHXqsX{;frIcIBr%fLUqwgstZWWq*q-4N&AQ$%;dxvhrd+q;l4N*={gslo zd%$XumtP|t*>|G60K_R|uQS)JuLfNVe!kBE4m)H`f1O-C19i9SuO1C~slSiUpSU)r zk8YLX@IS?*R-UUmw;#go6#eh3Ubt{+=Wm#Q?_BQLvlKhkofN)n-uSx=JEq}F!5OTb z?hG9V$D@JEk3%&3?C~9DnYg>$nyS3n4Nme-lyas8zn|=vQ0c667UKMkE09!qjf-YK-YK6d9wrETG)5=Pk+s!@HAvdO6s>ULE!M6@ zQJW`6NkmEQ;lW!qIW_-MR&Df+rHj_9nZ1uZ3zo$y$ru>+l|lgz7)22)S-uwJ-^Wv^ zMD%AiP|!u!Wf^8<9`Bm|FeD?6M!Jc`@OfX1q4Z0CZ+>U6kd`C^*4>?dT$&P&wds0Z0aP!lrSHk^= zNd~RR<)89RXQI=Hx(j4d)+ErW4{FDQ$cFk{%1`FmKaSlZ!}z3T2l%xI518G1(fh!w z<99=(*jt~v^LApU7iBGuLi8{aTYKIC#4zSTWpmI{_nZ!yQ+AE9y>R=P4J>|Q(VVE{ z?e|xoTwq}JXzDYs#q3&~h?1&5K#zYQ5M|M}I;ZI(b>U-R+ZC7xg9GX4A<3kNb+=;t zyDxg?!~{HCuznXlE;o&|OvPTZ#rO1XhNfe2q0^3!<@*hY8Rkw8jk9sY(e6k9=58X+ zP9&~vX~C$c%UOr*x-=}Jy#dSG>dy+G0V?U8bcKDwTd{RAy3J9N(ey5Ab^}|ul0%Q_ zB8lz?W%wlA5x>EHLi3e6IowV7T6M{=Wu@Epao9_nuWzhlAN#Ofl?12rA~Dz}3htER z2pEf<{h7~^`qwTE*nWcwdD?Ufn#HqHVtrm;+9-1Y2MsfnWz z&?9bzd`O!fAoA9s2>fnzi*<0pw(Y@(8j|PgW2#rK_&Rj9<0n-ezNJxciXaV&9=6?9 zPQ&ZQH+``jy_+-i@Z<&;op8Sk8pblup)l;3aAQjyo7l`+( z^K1))ERE_UqIbrrD1$;7XC{#XpyJ;$>&QXy5r$hKE<gM7K zl$04#aCHS-w3evdG#YK~;;lAt3mkn-q29>|b==iih{0FzFw+%`T5{OPd-01g?8RmD;nv%wdrxKpV2)P-*?!kJwon`ZcA=0H65$k(>>{eTLR7Fm|>;1y-{X{tm z*Aumvx)7^gYp+$H41PxzR+|$$lDL~b=UPFD6U)IOSg*8(#FZ-7Aj6# z%d;AzIA-RVv^bE-0*-m&SzfkCu0?(uYOo)%dYcZ z_f+Hwpn)TFhGPq>#bV#W!TaEc*(OSLY37}>L>ato-On)i2Wyk~acYs1Dh>=*Gxs@w zGJy}uYfh($hXX+o=zfYWv zUBnKBx_V1-Wg4`8(-|JQ{#W_077m|fK{7N30Rdp_1JjZHv08*_^z5hm3^hB?sflm7 zk|1z=HyoqlCsq#H>T~2LMvKc^ij&%Ia%y?1 zQjLX)Zn`XZL&0s$+T6=p?5Mlx3fN2;R5<=j86hcTd8|#An}rCmq44(Ek?-mhu$uHy z8*e?$siqv`CBqd)!LVYCzdmKKyFjal70aE55A8gFd){Ui|Ei2gWJA0eRq`brEa`ebG_XoFWWC> zrH#u)K8Zr6s`KrF7ZW+}X+DyIPg4g;DqNGBLSW)jer5zd>jWqa}B&AMTm6HEFwD-g`vu zTC(ww_4_AZpTn*l)q2s4JRA>2yUz5zK6UY9(~3--|C4Op5L#Tvm(OBQRh~7}-_jz{ zSbs0nccW35Qu^6+TeEqr&RTc1Q}=aUuZ)ldIz=ncpCUJ(X^~pDrtJqOpjNv|J^K zS!wq_*n8`!IGV0sba1!e3=Y8|xCclG?(Xg~FxcP(3GNUexVsMS?(Po32?S4q1j(H| z&-b2lzIFb;>#lpwn(40Ys$I3Zt9DiI+WWVwu9*($Hw`vfJnal$dF~fPj~4|V=&%a> zz#_F8en2BEKE=RloD&j4SCk<~tLAtzHaNIQ6cD_@|ILuUX$+tHV}**$;5$Kc7-wsO zWw*53!7qih=K7=$q)rHr3p@=(g7ov_r>=lPPns7z1@OKYQ-N-hETP5zwn4dC2zBx9 zK@+{C9S_y6VU)GCW0riUI%DyOVALJ<`W=cG+L@}bDR zW^Q)wp1rfYm0*Q$e@2_uDQ^wQ4#H+5DEf;*`H(@9X+%y6rGl1~ zfzXJ;Yk<9o9X$$xCE$v0;*HvcLCg&53v9NLOCwOo%jC2>QZ(z#YkF1wQAB)ju{-S# zAU=7q2yabU{&;9ujPI3Z>X8Ma>Au~ynjH}uQD3M5cPCDAPiSdlD&L;; zsiviQ6)N>5p=dlw?83ATq9)mSTMVeO(mh7I&}*ed#P_u(CQ~)TxBwP?FYcOb--&%Q zp56QirKF*3uYfuZBLv!rT?4M-%BfoDy^^>Soj83`Bz(;gg_yGKB$OMOMMZXx1tiRz;2O>$9)n3n#vT7F-im_aW0o&-Bgsb0 z`I^QF22Hp%L@LHB5Sx%888dlE$fCK3sP{+2jVCACuGbjdTVD4AuMe(muH6n-v|%xY z&lYPkGA73@R{X)S!;rH|C9>tU=9#!>q;@8~q`?X1kAv7Km=>cuo^SxBJFSsp#`_Ge zBgNzUk04|C8gT*fsdw>AGO({3 zi5!~~JG%5vNuahy;Pp6qdL(8>yvW;xDsv;Tm5reP0UR|;x-g29<;V$XOAN*Z$s2OW z_6iO8=e(}X+#-F3>)X%gqUhN?@7+Pq@E(_!05)S*@oTNXxQ8dPLeJWyW+ zNSMpCg+?#F*Fsrv1yTT7gK2o(7`2!e+gQ@At?JU)qk{L#eZ2bgeXOak zEEnrtgEV7%lQ&Fk3Wf%&kk4amCQj309RRC8Hg~idm0nqWNeB8St6n?L;-dBu@@FDu zt_+Hu`m-E=-l~@|Vn_#z$0G56z8p3cgU^R1v6-JLdU$%Ul5!a0=G9CKF6v8ufOKr) zuM95O-Mi7mPMF6y3FZ@I_%BTj+_+@fOpAo-e^ZqS%WjiC-C@SVdtVTUB5~7)4Ci>c z!>S?MfUU~^;}~FXR~W$~#)&Pc)phWS2xIoGVL;@;2T}+?Goy&fPt%&hV}|INX)jHy z(J7S*Pj%~^5Us!%xo^_fKKvBZwR^QCQ>xyd>*LtC&`N)Ov^WZRs(@>WU^tSI6sZl< zwtXc$Z8|$&TWVF^oySlTD1xlA?sEPx%VOjK@VHuhUg7E)@potyeF!z1_$STwf#w4^ z+sS(Jh9tYFeV2l7I8xHeKCFt0@_zttTptLl>t(JNg1?*)?j;7 zWk=E{x#(ng1qC8FxG*As;XgBzBA2k`gGc-&F8XKI5XTI->`ZsSth~D~hEvWa_<8f|qZ7+r;)tVvy?09)ca!x{W1Cf?UP6*VJM{ z0OCZ-EajcS%r8uQr!h#0oY!oiY5UnsvRMrAK^wwJ`x8W_jB~SG*iUsSGo{~9FWo2? zf!KhzcDSml-}g0HV{KA50qrhX#mxPzf>zWkhtRHM2${6g=KD7)2yAV5mI2xt-jl>X z04zvq((v~O564F^H5dUdm__&2M+%2E*h1p1#XI@)U`~jGh7_JbLT{4tshIsz5cvk` zX=0DV7+yXlv|uPhT}8^CoED}_sZ`~`%0qjuMM*aKvW#tcuXV8+tEYlsSV*9b_5Mum z>!YqUIU0e{XrF~*eh{J)A3YWtHF+T=A-riz49@wABc^O;MiSarRjlJdgvXaHUc)?c zCW9NVYl+csjDG-)Fiia*Km`{7hX4q~- z1_K@vQgiZXn7g_K!oG|ih??p%_oQS|rZV&A+I-i6h;6wzaI^hBf>FoG0#sj6mO7Ygd^>B9tMx)ow3;saddEr7QYTRotu8Jzq(+66&m~}5P!5wYCmSM`= z@LU$BN8u5mtIs<}5GBMQeD!L*$BhnT? zMZlYR%jiODc(HAh385(e5&>aPJyzs~bAi4(2SVM>loI!;)g};popdl{AJ6JPq44dT zv81^b5^`k9gyvlVUo^MD_bKEB&Y-U*#Ii5-94_mgweE(>OGW;z8@-7QUO-?q^(j)3 zb0ONy&~ti&AO^eHb7pTM6pd2+)$r4gYu>nl@Zmv_RqRUFlc{Wv{h;fa&NgCfC~@mK z)7t?vsljuR!7U3HqIQSPt!U++atz0V|2Ac{#>xZx|2_U+tpk=4{SudtcNDPxsW*Q5 z_Ir0vTBVSYOqb`%%`Y3)vb&n!FUD1e9+bbnnoKNZ)f8@be1Gt1NLln<@&EWn+qFI3 z=d$+jbXrI4(&+zdMSOOjIn(#NWfyrQ%6^Vkei@+al{iTy(Z8%@O;H)@;N!=65jHmifzz%XE@LTA|OA4phOv)}IN_P$4^e!9RS%E;^ z*Zdf64pN#z*CW8OsT>7&yDYn!g}N=t4v%Z(7}KEnlB%eBFM12v0C;+(FVI-fO`Wo+ zfM?;SKo{nxr|z|<@Qx-yT1R%F4rkBER;Wg|ryVF^l(55P9yLRkj4HsA!xjE?kh+CG zuTOK}URh>rCYd9W(LT)$Dyv`!U?GFNp9lUf=jUnVaQ9mv*!EGe{R42rvG$Hh&0rIR zM!Q$$?LeqlJFH{puEV}KZkNQ!iGp0}IGUEEk1l-evU?FYxUt!U7-jE3tl(HyS{D~5 zksm+V*WGc-kVPD)1nf&n-EW#=j}?)sY#DAT<+Ux$Ftiix=joJaxdg-R=oHwOBX%6* zv-G`XYCbkk>8QZjCf>Fudot_Z0O;LI{s78wM9oAX-?`EdoCZCmYo^IG%nPf^`{>+j znkiFC(yFvmo-J7zmS)x|1(hnZ^MYtve4I|Tnu6LTO$%VQi5LU|Lsl05xzhBi-N54j zs@EnH_HP?Hu@Wm%ruq%FkD7^>rC$@<8PpPzl)#I^O^S{c4@6}d1-v>|^v$&4U9CW) zdd=qK-FB09ZSVbI`}(U%+rl!pKLf58a})If8fXg2w-4Z`8?$iI`y>mLkIH-d11l)p zesIHhZ+s{3Cf7DRi3{ zey7qg;|7Rr#d=)a$k$-KPRlHny~}JH%-(HuZm`UmzD5LLylg%O(7U~jLnQCt%$`FQ zKs%ZtMt+fjkOp@fZ{B^GJ?1rDt3|$Wv#Zh-?6kZGNsR}Ijs2Hj=U$Pfh1ePXUn)$Q+allZSXNRsdaxG~ z?n{RFcxS(&Ib;T|(o%&b6NYe7a<;ZRvX4m5OKy1Hv11sh(1my@mF?sNc^G_BQnsYB z%HfE<%{ziN3DWHdYoC+C&3{?`atfD#eDcn2pzoRRAmCU8fwO%B-T@e_z6Ly!?O$HA z1(Rt29rsClzNP2CBp|OFG2+mF%dT8(D-11}S!-uQMo(HJb6P&=b8^3pU=f=ZZA9KL z<^eXYvl{l@BQ=im<rp zPmfhW=3NRQS(P)$ZF4MX_?nfg!m{rQ(`*UJJ~^EoZ5RCr@9-)8taM57>t?<9ZA4$= z*S%0)EK*KT&ycOf?v>Y*)8eVT=Xrd_*v~7WpyJ>Ga|dcWTcVva{Z3u*&II9$$V`|J zhC=4hYLhM3eqX;nDtNaqp^k@m0`T+iG%%L(MMk0UAQMqa~3g(?-5It?@JMgey~ zwVlkSb{v>W#XGwjnCL!zM&;A?gqa<+D#k?nT<7UZ@fHqOr@$wst3{M=LW8?I=k~Dl_qHI zxb%M=NF(J|T`v)82Kz>I6IQF_gQSMxFWy+4ciI=>YV~BtQ?r{JS@MlwxWXtM;_>UJ z2S)^Bqhw~-Fh3^-j&9=&DQVtL^mz|Kr`&F__@2OIxKs~Ri~L?A>oH#w>fCo2(LX%0oTP5rJ?Oa7!i9>?p&OmQ zt%Vh(riHdQ#~L}IlLDTITLq6qg{b1uSeIcBCO-10#wM=cMQpoe=ecIEIUv$IZVa>i zE4*8q_~18Cdpr||YTw;%9qBOIJ*Ts+sFm^W+D@NE+Xh3xLSa9c3PD3#pI#^}$C)zT zb;O2dxAtRx`(JEfx((YHgw0;DQ+*iWY+2lTpD1^rUmdi$ zK+$B7K|G<#9}xBt&!2ctemR5Vr#hMZ*43hvi9HqmAXcoHYKdSDvBOEG##I`3@X@Dqb;RX7oa0 zwNeC51CU+B%u>x}AuCZ@#COZ8vL~dj8-C7rZ&&^RN>w%ki3~U9G-kLOU6Kl6c#g%k zY7Sq6`Sh3UK$k-o)e9{Gep;G$$Oe?WTq#Lqf@2XL}*M^nebKADjhEKTxTQzTlF$jgOtak;6G8YN1f9F>l?MG|~q_a@NX zSxZo;WZI76JE@M8hN|YG0Rs1TiYTRCrwWpl=i&=PEf8Hf!(7{npi^^T3x0yYy4d>; z>~emNnk&SL*l|Bib4N+`9)kJZ>Ba?*t=|=7Aae-sj}$%m-*%Ihmrf{T#+P(nM`p)B z0%uXCt)?C+1?bjy&;s)(S7J9e=N}>+KF)6$8$ULx05XV&KjPLGZOWPn776|q{oFXK zbWCTbviWw#^AU2v`vHBxUa!6f z@v^(brk{2wLDGjbn;>XP=+n({4}P})<5A#HO0c&8o7G&3bdO|gX1JLeB)3_sj}`5O4AD6!ehDJ@bk?ty zigEKXV}9V9n1cdN9#sWUwV;xHklMc^C60d00zpv!qgF}utiVwVx^_CfZG^y^*IL8j zU8>g<+u_2zu6qL!wqrfct|9^tODfENh0y1tfiW$!rNf~Hv~6PL&2%K9T->$jolJ1! zkKZ~k6-ij4XEt(Li}A&|aBn*{f{wqQd9#FX=ZEC~Q>57STF-Qax8h&vebmhgGuPk@OF-Fk+KKS)`%6W0u)I%r3)(;c+WWZT z{yk#6%`#@YqR%qC&TZd};q$(IJnck!H~R;$q@k*zo@9=EJSNBH65X}@Ub?L{!--&e zN4!l%5eLPx{84mz1Jk*yG<-n%K+GPtL_U>0#5Yl_NPSnu0 zpIqB7)G1P93a$#s2(YhPUpu8PONbBfGy zxa*d&tba*`n8p=sIRn0b^_VvcPI1I*!TZHt%F21h_{n9&pAJruc7=q4{?CihTw+h} z>f9ewVVe~`4<})`J4WJLnBqz`-oekb&4snmKXs1NxFiQ_qj_L!MVy*I^JQ(y7Gqmo zG)3u9?^!*o6r*avyiiKSkyH@~L;9tBo6QXpOoXz2FAwX5=>6Z5mThL-;xu>fuY|?a%>}v7%t2y;9@inH$9AO2n zS4d7OL;6R+zR9I&8Wz_!9%|Wq!fsqz1FOAS4u;<{Zg{Y@@a2HJSmK{7>$n;wcX%*+ zh9vHk$omzCYBGH_))l}I_p!5(7K$oq=6x4OQauZ8sSx_Gz0uvR-HxI_jPhj*&-rq(PFN2` zLMWH|W_I4Feq6}T*b&$e3YFpGt?37*Q=rA=ahqb!5X%Us$Mk!rFf~af3SAmr{#OGu zHiE~`KD(qp_l>o0)}3(Yn=ty7I|Y)LFm`Y!18V1f!*IUZ2}Oa&N}VhcSn&8UwBCVvzq%rw~Gw(_+5k z<8k}(0psis;D+FKL81T2=B8M&fMJhGM_Mu-gT|dz*ANARuZH_LHc?s;+FVJ@2Iw4~>~` zR8F_IB?mS;c`v(l;e5w0{VADZ&(o%ic=^jE2R_P_uNBMoZ&`b^suq280xI>&e%3r| zH>jN${jUCB$jb!eCLw4_>)yX{XC5KnyrJg;r&)Rf{TpB(5j8e$nb6dkr+j)c;>MOx z&mWMo2cAEG!(V^7klE|Sf!MwUX1M&J4U2oRg#n%F;mfF;IZR?6{FhuT+3BkCYK~m- zIYUcLkEJU(5@H>Vm@YzyKgqlo$-Ag1g)q^*jfOle1}y(veD#4=0EH~g?a&fBjOyYF zInES8tafpl#rJ$$BI+~2KAkQFvGA+5a87xc-F)EvO}jhPwYV52I2g2h-c_$QXYon? zBx6>oK{@}6;_B_*s^;QkWVe5fr^I&g!R#a5qsPZg%7uW6;dx*2L%0FwX0b9de_)U^ zM(EUf;QHW| zp~ZPh>YS#Lj#oE_e76@1e9y4RDV%r#S#Cci`K2?(dH|{dSu{!S?mYZ>G81ZFVuOpb zWg89Fu!`4<{SwrNhggx;tj{mh49d=YZz&C$iH&u0j?XGt93Y>SiM!X;H`=aXrXu_r zS!D9%QvJr(Kk>O8!uKG&tl!BmN^}&;3)tkVd`B#)u?oZpY##dXwUIH8nQZUkZ7SMZ zW_^L*Qb8|?nkFh7A7QPqd=TF0j6<20JaiV?5nwOwFg}0d)s^_%+DKSvKi6ct9-~P8 zX}O+%)iQb=%4d#&uO*ZF*XA{G@#O^uFT~p2UpPcG9#wxormK6Ms0GYaBmcxzJn*Gj zx^}kBo-ZJDLap*AhkmR{zU!j>Ge&Bm&Nss*vYz*cWlO(_+5bZ{9^!^|J<0Frd?yF_ zbljBMwgE*WGYaSQb=4pAUO(D!25GPt^NQy zfontx?#gPw9PT^>jqo;!J;nrt)Gy_KmCHB327b$RW$*6y9a-GU#PeP_Y!HAtX2xXH z&*=)&^K0OrQx#K%P~cWna!Bqk;m|8Qh4N%KvLhBHr~*gd%%94`D z>V=3mIvJ>zg}?FRh5n zm5ILwvWp4~6cH#K0Vt?wmyMI2*01pMurVdF&1i zo8_vY@yb2JG-kDhf-LoqpWb$md>Clv58&G$KuWuxu78u{7|n(1P2}5$f7|Tzfp@!a zn^IKFE@$-m7$>T{A&gi6o7lkKP4Nac0p6LS1iEFyti?GLesoc?Q1xLW1BALONs0`D z3xe}T@9)I-MkL$RIS3fhn?G#aY-T(P5)?$hncZAAo=mHEVhO0xyoTmYc6`!$MR?3^ z?T~7GOm+N{Hn6}zc7HLqtwGT`w4H2htH2xEwkeqR7s~k+xUsbk;;5#Hl4-jw(qCiO z$brR(8JNk2v!Erv`lFX~i!b@@;c~(@3WAH{f>}RPE4ivmKs4eP#@N^ZOyt$Dfz`Tp zW{bqRwy8M-n!2*`uTi-K-gcDV-Hqgw_h2~6hJ6wGTlq0A8LCI3`+V|gzp!~=ueAAE z$->pQ?wP0o59#?~Q9LJL$_I7y($*7Bq2`_F(%u`&Ws^w&nwnHJarRIldqZfj1I90^ zdQptM)-&}1=7lW8SRNy%1bFZH_Aku>7;@P|ZOLDr4F~dE0+Q}poR-vCC@o1$l814T zwNI2C)~cbiZNtjU^-0W#X~K#OoPxBc$YGK|sT*hESrPJ>go*yt2h7il7rei|+Vs2K zoGZmNH`QP@xbtg4(;|?8&kb@arMo)Mxun5g3rzjg&65~K2$T?5H=y>vxZYu`Zj-dq zLBIAB)L2Og64wO=Un~JJfaW(B3x`(g;m-JOG27zOK1*7S=V(Roxw0n#Y*8D9FdryiF>r(-&ZqOVKp`F zBo$h4-|&oYya2|wuqX4T_wJA!?7V0;8dr7qaNUP6DD=&k2eq?I0y0Tz(~p&Ve~$rq z&HyAxXQdoN>IgGgaTAz6(@{DJ!*yoFO$)`C9^f}Eh-S}1iGD%FQ~UNod~-7FLUHO& z^CsChCt9^HVK%%km{EvaS0t2%$DDi9PvdFw`xw{FFcfBZ`aMJAshT(tHWfwdvFF6} z01ZEKr8)Vcd%IUB<1zl02w)*+Ukt&P3VXO^S~oyqTiuEohnx9Q&MB5-BS$m8-&DIX zo27fg(l}4FLymbq8Iyc3K=qixI|XDco*gxcAou>dSAptbK+0N8i4k+|nqA=WAtvcP z$?9;tct$+=aE$CR%y@Ft?)xr^&2p_t*Ezt-#?Ha8f4>j`&{L72yE6C1lEba_;VY|K zmAY*?X)1#6<_4cM`D&{&3XcQuf!ncFUa9gAz*_*eg;h$sp>9{xyD?hWaF_0X{qJzM zHN=!Pdu{xk>8mS&pY)w`=V0$fPz%Se(6$4f^+q*bU9O&jx~{XVRbUwR@>SdfHGl|y zTwZ4Mg&+j$ciT&uZ59WD@<*xLS8q3Q4L9Rtp=l_n6Xs-CJb|_&jyJjnU;25J;{^22 zkjJ20wZ0EqO%wsAyz?cSJL+VclGWrJu$P|$R6+ix$s>mj7d;HS|<95Xt&qD z8;EJ(SQ4&)u-{d~mX1$H%IjH8@NTt^|CwJG=wL>qYmj504I`zC?I0mSUSE|;jpBAO z1wAGg#x8fjHDAT?f5nhcwjgIa3fayk_<#Xza~#ukrvsu=H|ilbI>Mpu+tKqP1%vWcTN57b!;^+K^AEWn_ey`H^g-Qh z9YMdoY;e7#o#DWFPFD>p02U$ zZ*57*E@vFe6E*`qyBM@?Bs3`OQqIEiDQ6URG+UGDS49XFKn#9q$(} z+4)|*PYtYF_U`uzU`wUtQkBrDzQpx(1q3d=OsS~29Hw{xGjqN#Y@woDAmt=BF{;`E z#ua}wQ~7ShR`v9_yevJ0k%zBRG7ZH7{Dfbg??yJi88$t{$BIcpwtc`%+dB!`1vCl! zu{&XALeaepf~WS*Uiu9@Osfdf%#=aN5TrMxig!cW^qBOvXBGAoVsL>6he!^4p)qsh z!KJSki18e{Pd|#kX%5(JcV`eFH5d}{#Z`7`2i;9@xiQ%>auCJjH#}Yw>m0F~C)=+# zxy(12&1Whj1hxP3RcIB;pQ4UQF~ZnQ3r4eBEhvn`TLe0=@7rSfWj9fxm!u;7U1IHs?sFtz=$P#8S!$BwB~E5Bx~e zVxAV0%d2+14ZnQS#j4$+bfVu>;Vi$zvud62^_r?}7j)@7DmDCgzFNG`(x%_PF%rG& zQ8n@h5cko38HQOI5pQzf`UBX{T`%%gjNfs~Z4<7TakGe>Vc$1Mmx3)E97DB|>4P4` z%H=qDxLNR7a8$Ua9+4sxURY~H9u^v6dw^?%J!?>eTTgVu_;&s}6gwrd%dE>~J_yAOhB7GmBHer50;Z~fJ*~O3O45_0e+NOQmHJ5- z1&{-}>_hXr`n5?RRmHrP57*=8(BCqfuu9MvAGcZLHmteX@p;eo$U_&0F>birVRoqs zT&UY^K`}Rt)}clyod>#~YnV4~fKP@w4jI;d8SM1Fams-$pr+##V$E>E-aHzSO~1}) z7A=#0)SlK&(8jnOh^Bjd^8S8IReZ(^<36)X4M!= zGh?kZzE-Wx{#F4Dc9#fRFUwM*7i``|9X{9B;lJYncV!kV6r@agQK#-<5{+rvHexQp zG?*i40``d^?`Vd}7g)JXSBs_=PCJco(6i@_h~Ht z137pV^Kp@TO7)0$+~8ITVt7y(r?co^LqRliP;Fme!;2YUD-r@K?Gn>ZjWFSIGYAh2 z|8iT=M#+oiP}NO4N* zEeS&PdOF+9>43a6nDS;v$?ErPx-JC8TrSoMs|;68?Vi0juq2( zx1(qs$d?XTN13b84;fv|BmM5FOr*5IP3MU#IQ$ZmHn{0qgF^wXjY}M#fURMj;Y8=u z%oKFxZ_sw}5~a)U=^QZA-q5Tx)2wE{)^#*(o9bLfJg;XcbHHml94ay>8A99sfe1=G z#~yO^T61HZ5p-C6J*fzc?h=#FW=m`wbvM;t-dNA3KTj1T>#e_A!ES3oEjN zAX7_YeTDyOf1=>K{MRRyXI6RfYw@4#JRf0aW^&&6M-gl9&dSx5XhB1EL~XBuk$p%t zrcO8c)y7V`obrfKm42rn0w?%gS89|<>xKXZ!KtvP{@E(~l@^GyjMvnkb zx>zd8`q>&(I0?n91Hw!jC%x6aHhIB752>tA8s(;L*E>_Fg(UZ)P6GB;uSKxdhY0YbT!+t9ib{Q@a^pOJ=P~@3retu3a9U+Q{j!lF8AZ|UY5-aXRy23O;SX&n33R3!U~O@ zz7WVQbA+3M2mn4jlFg}{>0snr&nH36?NY~#K3dQvox?#}IE^|uX$f4M_4~~^a zOC9A|-y`P_<)4sLI-Wjr^+7NuRq;c(gH;a)|z(-U0Nr)1K{2Q2rw! zauO^_fDK!hJkN<4pzLO0#%TJ!>C)26VpsUVlg0Z36h%)<8q>xndh!pzfqDy^hK3cT zHq&{k?+N^};SPWw@cBn7+Baz`kLzztX9SjX_j=~j4hwVZjz~k41z6rjF7~aC34P{< z(>10b?Eh0L$NfPUEfUDXi3M}A!Ke820?LHzG&@OlzD`p-}F$A9Af zE0y{Id8j0_*skP6$MbzhI{~3SKU}E8ep%D?qW=9UVeRiwhnIYP7`jrs2X+_tKQI4# z!vDPM7LGQdkgAOf@ute|ACxcAf(8A?KA@Y&QTNS^jz}N%89AP z;F(L=wf5oeWSNoH2~Gbte%0`n)R@SokR>NSx%vEAG&W%Q61VO$K`OzH_T_cU8q}&Q zGMh%O=hOO&2!B-zl+*3gcQeKHTsl&RA62OaYm7qG^<(BXvg)AgylB~r!J~Kh9Nz)i zuUQSrKp9*zOIn<^(+0SRl@zDWTvVP(z7u4}2BxZ-{HjXTRuS%n47Tz$!m5XAcb8_s zU!n!hUYE5AQ96THM=46GW3Vmjv%Jxts}=dNbu;92$Zyw!oXkXGf^SliNO=!ZYGnLhND;A|vPHp6i~+(v#7DZDDj6)kM#LN{Feed`P1524ud1G9-@ znI-~)1iqth(fs3YE2M=M24&u1QtNm7SFCU^i(5T z`K6I{oSBj_rTdc!&QXyfM>g;s5=^OFp(1RltK1dg`joL35wM;M0D+6%`{alU1hkttP4q9m=Ir#{X7XMzf` zHK55ax1+;drL?#(9=eY`zSI&e`O8F+lJp?Uz)rrAtcsQ4hcO$O2z;-?j*;5+#o-W- zK(MNXvVUYRh90L;5hRZcJ!zAm7we)CG(F1I!xz+3u51e@9rv@q;R+p!Iaz|KT;Gr5 z>YxuNR>5wIgjIAW2h_ zI)wE%@!Pj!F zmuVqQ{}=Xua3rUV_&x&ch}*Ff?*s~6XO+Hf{-`$f^6imt<8<+=x?H;@P@B99PFB$(-rSQt}OU}`T z_0`|8We~7&lF-)Ic3ihXo6Smg%XtnNdh1|83h(75pHVy@7rH^V z;NV_ufpLf;%0G(vL#aA;$^{D|y+PE0joc$T)y>+^X>bjiVb4DKWrVd{0%p|W{LenT%G&4rTi9ie7b&oVq?KdKj2zfI0G5X6H+YFDt{`DMdLta#G zcf{Lwh~qdUcQdn$1#L5MfQ3N%=$-iF{2ZT!dw(#@D-G=E|KMBhxvbc8sps)_=?gr-6# zhC+m&P1r4DobYjE5tz=HL$~jW-1X4)R#%O}E?x-@`pOQdFRS2NAc}q^mRfXoMg~KK z`5OsUly40P7|ubpQM*zlrCo*8f`QA%r}Zdu1?-b`+bi`Tk*W!4gWJ~FsRd^86*G6M z0g7vLwINn}D6*-wSHoy|$X+>j3);SF*lh zzrDZx!KfiC{^%bO(LT0af{NF4TNr}o(%J&W_ysPP=e5xJnLwwc!z zir=iPqNUdL=Y8;s-S#riWW8-k+n-=aZLu1GjgSI%=EP?HRd198{%Sg+#B3HeWSQ0D zPT25w0`n&9&T)2p(2ok!7&JZ@TR%RKCMRy^i{W`cEL4i$@V?;H6WP1y{8xZBrLw@r zR#`Uwd<~WU#=s5xxawqX0q#vkJ&RN)jSS1Fjvpja4QdkvSu!D=EScWdR)K38V?{9{Z-V{iWd0gmX$2jx`&S!h8($f7 z^Xm@^NjJ#-e-~?T_YWs}A6N4o8D`;L?AofscXcZ1O2BkYH z?bC!3CGMH|h`HlcYif9~4}q5AEZ+_8MzttS{_0S?Fdr^|?6vm4>is+*QxvJMKzi#HJm>?WU?j2uOv!0+TRmZqhzIuj^oaZng8+KL zKHGEaRaJ4?TK|qLtj7Jn^#H^y(qa}gu|>ui1DPWE1O6PS_^Wbc9LO-~o_j)^7rs{YcB&Dl%+~ zn)>q8{VcLCHg1Hye7b+$F#!FCS*k=o!Xf$EnvRu~1%|dCj$OY<{47Dc6DmR~+}ofZ0?= zj73r!rc}EaS5u0wp_!d+H*wSQg$hpkk}_WVFpWbV##f9GR5C`a2);Aki@D^mtW5^u zh$64Zbsf;o8AY@dUAkVM_aLc5Y^4NW$G4kVJ&6^mJio-&M$Q)N0gnRqXgr5?_c%8I zans`KVIm76{wZ!W#NVQ#sAIkXEbOeuq05z?~3l;U-eiMZQ&ZIFOWbWLoO*PZW!hCw!|#|4}0$%UD?yE3-8!Tr(?Tg+a0T8 z+qRRAZQHhO+qP}9qrUt1zUSQWojdM#|GMMD7dm(Z{v(co`DHXX*(WLpIdAJI8QaEV7YFIQ6w|$vQ@zhKZ_epOC9dq7Y1uFeM1P6 zq4%E~HgNB3>%`eRfsGy2vtcwS!RD~Uehs4|4WTsfNK@_O`5|VkfDawX5)6z1gg%iI zyp%IE8TT-qFYuf4Pq=(QG2N^%^f=32wie~FTSP9To6{I-miDzo{>;{Zqn$xCCbhP! z!x!`l@XnZ#*enX{U`rHWZiL89Gy9Y{!idT3)|lNotl z_e=nJ(Bnl1UY~8p2%}oKC*9my?^cKF@~T$(ZbgO?DD$IMgT}7d?|i{b!{5ZSFWNtW zPBbWRzO_k#&r~kRB-8)MS~2MVA;vaEIpz}8^eYyU)v~~`qXbl6+ppJ-S-5ci!IBx6 znk_M1Q({O6=FG5Kym2JU5WNiIXgT+dO6WImx1ZzAJ}ZRYjjK&-c@DS5Y#_A5`YL2k_TO2 zT{)LLXlR_(hjk^$h7g5AlL7y0suIL3A8`ZmhV5Qx9+? z(ba+?IBc4ld+ITWm-rP!ZasDXK1N8sGB-4wR(gE|_%L?+9a30)Jp|UXRd1}#lc}!Z z{dQ89X$mOZ(txzi^u!1$&cU7XN^s+?JC(VO1n-L`_637?^d<7 zn!hW^*k({&$sTV-D{rF>^`6i+)~FfHnOxSorSv(o8DeD*t346aHlX}gylfLh^pHYO zUI>i!6#OX0l$E>_#XnbC35p+Y?STCy}%wz{^j%nwr&nonPs!@De>?jdKu{kM^ z+A2+3rA)Kgb{fY{4+zgM-eJW*xVAgsy_Vj*njpBW5_04P$O(zbMhH)`Yc}vo5d)c_ z0QQL}*O^m;>pe?mJ&RzBgcR4)X99HLDy-9|a=bG^(T;ZU%mj96RZh21aCb?p6ll!J z5unRunt?Z_PMp8I4t|%UNMAPD$fB2Q`vfV=tQp$%Z>o%z5jh%pNUVy#cX>H2C0I0W zaE?3UDjhOM-VJjPxaEdZX~;R+h=@_|acJe5#7a50%6{cC7hK1oXj2YIge&!B-#1l3?UrEJL?@=G@Pt! zpdy=XSeAq3Z<)A!&gWa>E)Zw|_aUn1CF(HPCce)DJ!l(m&NSS)RI+6f&oW(-xWOZN zdB#E{U)R6%jlr96GVe$b_Q@H_&Phtc>KP7!hDjdz%Qms&waXan|7_8M?OZj}Qjeic zyr7n2ScNT`G;fj@gDF!N>DSsO)kSmTC(Q;A(q1n1=sz;yBu!0t#Wv5q=gS2yk}z!|5d-azItcfUsZt>>Yz{_P7{o zr5hYPoM0i&Nn*4aYZjZ;v|^oq0l`o6r%biN(rynpt9Vj`gDZ6Xn_-m{FEsq~y|WWP72%1Van zqufK zNzmfvxhfJ#38XlMMDXoWGkA*DvFJRe-6m3vYG)%I$94Kvl!s88 zHE(Q+@HKJUo8FA_bTTP%VP`5JB`Izd^Mt~}h;*yvTDkr^N1z?-0{0xJ*mL#ZwRO~~ zvO-%Y^2~G@&&z+dmdSXG`xlxlRpE`#oYaZYbIj)E?5+S7>L_tE54;(O9Jk_@si+Hv zzGf|CI`jE!;{Hi1vGz6)m7Om2ClLX||7T#2I!>jiqD-B6=C<7=l zx!-vE^Q};74`usxyQPL**Cn*L-@*V|1xnNU&e3`A5J{})=`L)lnd8Cn$Q{zrM7=S# zz#(>mopI1ZYVx`^{8rp5$p!s~JSF&6WISwv>rH&Xn_aoHxMVAcAj8xlB1Q3qAK3fq zJ;bgX1jh^<@tLT~(=}it@F`c*Z};rGQK)bSEnp&-Z|#gDy9n6aoHhotLgc zq@&;jMcMv*uRdMaOWO5DiTBqs7_kk7wN~_PUOZ31OS8qDD+zrj7dK=xyl!EW!L@Z| z9ebtihm<%k*Piz5zP2uYeNAA&Dmd^ zM+;M8)x}ogB=5DPwW%;T#RUR&#(f&2p-c83`KX2d>jWqqv`1kts+#kF)p4z6rSNY@ zXt?-B(Q*P&NPF^8ZxP~J9>02j@{BJ0^jWt(ZPM@&-kF1BurhmZXf0_|{FChZuk3GT z{(FYB3lS2m6m7Ux3mc}~d_L_H)M-4l$Ic7XP|zLvJOH)~S~DynS{~5(6Ibx{Q8!JI z49^j!75#oBIKIL4)QJF1$CM=rWq27{_EwBhM{?!fX~+6Mj^rwW16I>6q~PbRY8R%> z!ET;F}4HF9%!z& z6J~_&c5?o;Qs@F#3gvC@lrLQoa=g!z>!!q;L}su`q2>~W$u)X(9JAY#$tIXz#x3|} zEUs6w#o1cMs{#Xoh(oj_k$ru60|=GU33>_YNVR65!<%Q1^LR!_t`UewW$2SK=xxOt zG82R=81>(dlh5pNyxa05{^%ntpI2jTu4~y>`;qj-@e|~FAflE;ircBu1eeM2A+oZ`yfLsA z@)mldCI3|M*9x5G$FVYZC?7WceYJSp9H-*;p6F=QQGDgpPj$1|N6S+rsxGcxl!^;N9 z)aP+89N{pS-E1ZM$x#DPgakr~I^LkUW*0tZJu0}5yo=p$e*8;ndRBU0(mW~SE%8Fl zw*Q)YPcqz|0vO&J#t)WOFqjL+j0E+v_S#oBt=jdVt!p;ol_jZ`u@5eXRtt43Sd#Du z4FrU0Swq`Ik|Tl2eA_*0vYb5~c$iwXd)Ts^)3Yb)ZS>WgNjJP>dlkPCET_dG$jZC` zUr+A3w$!+6`;(}+UutJ>H{m~zT93>Fzzt*9_+ZE4hHp>yNM$pU8V1Wiv)#8Gs0x;DWhj+`LKV~gnb&IVRg9`ygYrD^ve-nh`=QS zeS@_|$Zwh*Q#$md-P%ZtJA@t3){a(pTfG9uj&7JHriqe?V+t1$5mgQwJdvSs;gs!6 zQyJDmxnxbtHrS5~(t4(G_;YUtorX>0Q7CQI*2-m!ttdLSuFAf7VX`PIP9OZcOz*eK z@F~vY54Kav_@;S2K9_aij7g?Q?3_8G@jNtHP}#ZAG)Yu>A}1SdI6SGH8(~yfZls{s zzkkVI3(Iw?qpo+sZCDk*LNa8@wOYG>+-|Lj7d_>i;f=v2ZWG9Z5B4e)ki1kqP=Ey7 zRUfdr&dZA52ih( zf|RAk10h<^rKHNe;CWdr<)Z=4>lqju4hSbn)^WEC-QBsQJEE^NRuY- zZ4j-N zLmV7E307xlsy5t-uo*PB0C)Jwu6*M%*?unc0`Xr1w<4(obmo|OU;h(@Cb>&K#p z5BVKYN+Cfg1WarH{$hJo;#A@186}I1D;(nX;%m7{2w3{8rUAlpERZfWvD?J2cOdYG z=;%;74Nvri0~Q}X+lf!xt!7Gn!FKr#uf!GiY2ic6b4>C=KSE?wyHg#5?}={~&97#1 z--7a>2R_2f^$ZpnHYD&W1Ng7GHd>%Vydmaq6$bUN;yp16JL@Y4dLxrixRf9=E#$hI zLFgZ&GtfhpzuA?9|D@`Eu4}#{LZ0d4em^hp8)(aK*uyw1jCxaNOaVMcMGdC2up%-s zPD4b&v$Z?om6U@7-$d%MN!yT!Vfq+X&)lZqJ=eiGn?0D>*T+64V zGwIM+d7!e#C?&wq&Tf#7W?m_xnojd%lo8pXp+~ODtbiC{;1=0+_05w&b7&gqzkvfbx4?X22jP%+Or z-vBed`qO6dwc5gdAFx{omZvCr32(V-W1Cg=nc>_9pM!+s*t7XcI|0<%m0h!oZd~Ui zP6)QWFIc3LQnfvPG_nBLkbbPDj_?jxMtdv>k7=4Z{RKE|*$9yj3~%nd@WDC!1zdZb zZ-uAu6^KpF^t4TxwXwme2h2lM^{v2Zmt0i2zA_y#CO=zHKs#eH#8URgoeRmdb)R&{Ne8iDMhMLm(ITdVxxtoY|Y zUm%a^53ti+tYgV-lDJ(=qR%;^!Nr%CIx@kHk~U3k({Sb+yMoL;Bp2}Go5Fq{*;sC# zW`zx&yriGv$;+IsTS=$*p7WAm{7){ZI4Q~qm(M1pdY-fiSQw5s$xpJBIsd?@T`e3s zlztq4E`7N1JbKUGxeCQgZB{Ff105&|eI)05ip+KD67lQMye_K74^P&=2B^0O@S<1L zmF~m-@i*|^!WW}=FwMm2J(i=uyU0C?A6)1{%8psbr#o|yV85*N6zG&Z-rlU1lk_3pAdhEREpa~KD^lwavn|Vo*jnB$WUh9*6VGbhfnn*%I)4_fH^{!A!&%+BVa{fVTgwF=J$cj{!pb! zmLmH%FvZv4PtI>8o8|7zwqR`tLjhSgLJnpljQps;%}$?s^fF2QHPh2Z`xZmM-HBhr zu-a7+-e63+D!C2OamHcv{^A2?=(UKcl6OVlQ^03_6wiT`>?b;g6B@XJxYcre?q;#^U6DVc4^Ea|dsJD5f0II0DP}mMofR+CCbLVf zlh(RY?$?h{z75y&7eR3gc!On)Pk|3h%~Jj-?6OZH4R2%SI5H!TI2T49E zPD2ly72O*f!3)-On6ZulGck+OhskRSpVyHk>660em}jgX;Y6;T5NsEIiPAk5@%6 zw06OXjKR%q3H+}shZc%fKX8Ki1|Ci7p3Fe#ojL#X1LO{SDz6o{-O-Kb(sJTNJMEX7 za9d2`a-IurphhvsSN;!7j`v@H4u3^T7eK`lS#5l{UX#r&z{9bP)Z@JhpQ{Z8BE#6j z_DbD}M#O*`Srs@`l>Y(Uz4f#bIQ1?T(8w)2Y(S9{lu@fwDE(Wcp0bI<<~|7;}#6rQ7}Ry7X_GZ1+sj z9JknTvt+)y)S-CpP5VOW(J+P0&|}JWV_>%&QDGZQ(y?aXzuAEEi8GwN_^ix)PHSDx3#`jN z|Lr*PW_sNuY|&;(2d4ubEJqrO)toJ*vILrt)Y0sTZ1nkp!f5sb@H?v@Tx(i(POb|TP)7=n zj<$p{&Ek0|4kzC%N%(aw8wd#z+-P^w$?6jP0!%-5=+_O|!`$e#k2+_?NbvM8JH zLAfdAjo+VC{B_D_rIs{cepd+4E1Qv>SAlma|8M=OSb&ZwsfXVONTWgf4M>{-3IYla z1pu;2gMa{8sR77Di~{od-w5sV7=HT2)!p97>Gkc+)!O}ck_;d~*Bf}el_*7FsTmwH zwk(Jg)#I(8|0~4IV!{)tMG*g9`JCd?LLV&ppa?$UB_`*+g#CfEmhioz>R$LUts6dW zla;W%Z#SqC1{)Du0BRwjCCYAiVM!nH7iy3I$h_urIRq?1$BaFMC~j|guQPaC|1SHo z2a0Ls%WU;in?C==7uGvyd@jo|clbGTOQ9Y};QKhSw$a{gI|81%5P^=d<)k3y@ z>3J@z2>pTo0Ol)`0*|V>rBrsqI(chyQJD)I9j3N_O=Sg6jUzwT4euivB%;Uk>~3g_ z&t7Vt8QF!rJM9_XjJkn5I8n&^flj~+v2tI5qvTDX z3mc!wM6wo3f9u+Bcra33$ec9UvD1CB%ND7;e2#ZO0T}Wp0F^DyKPpagg|R~wkXz9Q zr}RpQ5dYEg3P%FKM!Fq1WnHGQ?ENg)TcmW^ycvZ>Bx}Fl+W>RqcTj4s7$?M|4EMh) zZ1#BNcM?2P?-1WwgUkr6vX0tY>}o!7dKZ&O`3#pJ1^P1oug@$3aN z3uqOx08uZ$faup3kHcrwy*c?5**G%o2&*d2rTb>Lf=-;w}z%iCW--V=vWqwHkg1rFWs?;e71psPVl z)kUKdFCW!A)J%xu8H-{HOBPmp>&M;|g<4&v?WSkIrxHZ*Oq}`YSAC_h@(IHCA6a&m znKBF8e>Av7ZPs>9T|p{lkA=OH~)^lCYJ&+v|gYBuUPTdS7RvRiWdszJFm047_E2d*9N0BT{&>Le-;rT!2ybQo7oZSfT^ z{<9;R$>9vovuqBKB_ zUfmm2-2G-}K-2$SamBW3rLazr$oLnqj1efi>7;D2n})v0`-kL`b~%f3-$1vMgWQY; z*-2NB`URpLmrH=Bwtu8vvl0yf=U|!WsdlEPbAhmygue8>jw5k_7}j&f?l1rQrP|5ss~abdM%Q2gQlN4 zhJ3z)UwG+)BF?O{b{R3DZHwxCoLQu#F;~N1eyrjOv5Gd#k)qOO8;rDEecQ{To|^d4 znGf(5ov9rMWk+*ty({lL4S^jT%Z@zNR;vlcNJK?458;m2E&XBPw>LR)TpeLyOl!A@ zU;Ad7hhA0_s|P3OR=*9)&1jLUF$Dt0V@IPok}37OJ&|9Q%tc;1iMnCZ02PwQN7a{^r%8>t;Q+#_bAE+u8 zcpcedNk^EmOd)audLA`Vm%%_T{q!8U9&0JGDDOjTAzen`o^uEcwYGLeWjkov(f$}(K2U#dm_huap z9%jmks4w&DuI#RD?j0H~dg?ysgmOG3&2ckZ;6avroGRjX)rh5S9BZIcXV&LBx6Etx z2(^q!A-pd2yb$I8E8d#NGk@SjS>E>8Bgk?lv!9d3o9WBpzvJo?vFom8_nj)`SS!Ghrh`qSRA-coz7 zP|s7ic1~XNH0$0)77&7C+x!-D?0=Kz923r-$MruebWf@!b7!S$jsShjj7%=NA=p zbei2yD8F@WwZ6B|?ToAt-|;7mzQB++ObrE-@J~w}c*AigS+)K>vQ_^Qywx9QO&7CG z`+D7Qp~uElsD}p7(WzKMn->>%R zmLON1i4kS?StyjAxpM@oc}iL4p)DCfoU}0ZKcY^S+NA#lgp7qpr{GH7dVOP3_g!$N z_Ra~N*RPBNu{gC+6l}jUg_$JUiBgcd52@yPg|r?5lA`eFyS}s#KXg=GJdk)caCElLUG5`gkTpiG*=rJZ>Cq9|yAb+aQ zH2qmasUjG!z4{jB0aDLh|0!OBygSs8_swGo+6@g&EFkP%rw25f_1FN!LoWsPlk3-O zNYx}-#1fFw3!KgxBl>~qPrGOJ4k5sSx->rGO;#65UQ%sB%9EEz*M0BJyJw$8r#Z+< zHXneB>WN&jBr)n`G@*TgfKXlS!vN~vX{AB<+d=thVwV`IpNG0ro;$_H2772cjUk1A z$aS);=7`%fkd@_$oT>5zY5seGS+xkQZGf&YZyX}Y4GBw}z{34sKpJ)d7z)C*FF?M= zS8KI4d69jE+ozj?5J_`th^;{ZVyg)-!2n&N9CP*;@WgJ=towQ2;o1GZ>md@;QneF@ z1LVlfldK)?##nkYIf|0BSLlB;uxx(o4W~GBi{vO)Eik4ooa|Zg23C_+^WBrc?C@R` z2veA7TGPuJz1?tudd#b>tb{fbWFurx6@R}IP@@WbUAz>76`Cd##nz!49;}PRw|o{fA#iyxkR zVscRwf#ThxzzyYdiP5&l;isv3IUc)Nm8UtsYQy2Ri9+e268iA(Ow8DY8#r)UqIpbg+?L81qF_KUDxW_i#f* z09@)6!yt0cNThc}P145xrad?l%X{Bnz;oivHPNXBYbWCk@;us~JlHT0!Pk2jw%!Y5 zVg;XUcLvjOZciu7hR0BRaudtcDHW~yQ820is<)z>*bUqiFzorY&0yBM!^Vzx+3Wwe zlB6XPb<2poAYUP36nvV0?YOF|?nm&r^a$Nwz&r1{W4o$@(N>+}Cmj;K)0}R~KRUr3 zVU)`aqRax``S*L}mrzI*0&}q~YOnO{JJ7E;S5M6f{GONB{gjIA${XV;Y3vlig4LgMgskT%!?4ib~ZeS)N-d+^bsaxkR0k|&?_kC z>~+Wn&(oMMAY$;}&i3QtHnZeP1G)38zSYk=M`MfT+%;x(vrN2U`tr9Ax6=u#KWTW3 zzN3>v-t2d>r~`pFR}M0{k>DYYx;&?Qr0@Z@%Td)#*}^!ha7BG8U2}~E^P6(cSj-oQ z@Rtk?lx*Hk06+>Pu^J*nD^}C-P!G}?&>W0@bq64u?d{D~+=fM9nY>|6i;&O5+y9dA zXPhs&huQQBg`%&6x^VwPV0rSnBF;zm`67E~vxB{HuTt19nMfQ*w{{_veNu&WclNR~ zF`&y;L`*mk2*-yB03MJv5#*o1l?MIl6$#3Gh8DLwArN8Khceaq0Q4KNBfsU!!Ds2m z2OiS)$e$G3-nldQmzVlg|C$wEaVvsmRb~~St~b)L=!yA>$a7>=k?iX*U^Eb|t?*`a zh6PW1%;1uAtrF7(#X{f7r>YNyPvmZ)khu9M5F{gB@`47}CI~&H({`w?qVb8hYf7H} z60ElT4ikgp#0UzXM^Sgm7f0@)+Bz>%UXykvm?btCyd&r$ZKL1U98YWR>}Z_(DbdJK zsF-&2oc0#x9WjZMS>Qah5C4t6s!WH=pDI9vBE&||S9DmtppZDI%yV$z)*ci_qghQ4 zy=AgW^L)*+3Td3)zs6EIVDjn}+l$BjFTl0)^F|%GP~on5C*6|w8jSv8!rer3PWLKw zmj?aAJwp3v1t-TDFpynohNwJdn#c00Y%ro0dZ8s>UQk(Goy)|laK!r!`&&er`knM| zsc!~1i$wcfL?M;a*$t5~HQnfoaD@6D7Bp$kkjN|1zKa-_=L$7=a#eLzF-5dfk0DZN z?VY@DBAfx3!y0KAcW>g~OZFL;IU`Id9$WY10>6@X2UOA7xS~;f{ooG1-A0Xo5XU}- zjry)gGKEyC z*MCyw{tnWmJVZAM5r z*1Ki8%fW%=*lDk9)J&m4Yb*h9rvbd4;>5+$&{pR+_Jp6!L6Nic?0#4 znf0gF7bsOG!L!ncyp)Z>;$+^K0nBd2A6}On@URUdsN_%0JOstHe^>)jm zh-yL2gGv*6EJ+Sk@xZ$LEUjZZMSd}w>;7k>pt(wR8zcdQ6a$0(!X(YT(YJoDP{&k1 zcDUI}BBp|B(f#HqmFIx` zT2h#CgzL?QO4=!shyYlx2#gDybmPHEW~`fL-tYCeZS)}Gho{IPQou$2;4Hc7F{Cxd zHv8z$Ex|u;$~%IpCOC$S$A%E=a+@rON`IX8GU~0bFGPQ`Z zbC6aMRQ+y6v_M#t>WaGLDmZ9W}u+u{$)q$N?rKJ2Rgu8aP2Ctr~0&Z(?Od;>1 z$FCRJ8Gj$(%ys#gIvwp0gW?#s&#YR*+tJ@n7ZG0N$XM(oC1c{eA;v(`?_oAH0;gdC zm!`7QeAb?LGRzB^bb)wJi+%p&+l5)hE6sptwMW+^ge>6ch-{w7d3TC4Fy6?MqHcBg#N6 z7RvAgtQod!JL@!>skgfD4GE%Pp)b3SH{#DN6!5(Te6oGet{`E*ZW?x(Hr?ei_hrHh zU2{ME)NB-@e`Gxa4X|%;sx8W??QY^2V#`l{39f^8(J|rlRX;oiQ#E@bXVBA{whB$e zuBv=%5TU;!K#*ntN-<4V;T2T0+dqUTr7F04?Kz<;LV?@C8U+{C*R8)d-M1u%PV9f# zLX@|jGxJOT1^Bx3sd6jUp$rr5C|F_NYVeYfsZTT8m7n8@Mm1>*r%lMNKm7qMUVhI; zO@9}Se7#+oRyMJKg|dC1+hO1peik#GCqzEx{dIj*wwKd%aSw(iLc+~$y3YVUTkA%a zM{`YeQj7d$y>VO{h7lS}5}KX1D$|cgqvf-6SUa1heSliPf4C+!%=%@&ak9b>UOIYy z@>ud%@|+i%f3kD9Si7V9FulWhk>d~9VawI&S0e|mL$&NJbs8SB#W zqAZD~>mK2&#uw)*gfod-%K!&8&svGnDm+o->`xYHsm5zyrtl{0B3ro*TTsVshE?E# z8NVyCG^ioF4V}x_>SqCdfVK>s%p9pJF-%`Lgy*7kfH7|$afS+~;itH01Ez+ROCWv& zc0p&6^3TU0#=Z1%7QY#{?ZYn|u64l;bxNCmb~Rq0)@+yk1rU3XFTzlwkQrqT60ce#+9W#B-}a zZ(F_mA!YkiC^|B?M6Ath&iQpItok}oG~yxQESAUVQLZgi*rn-@?#x&HgSc)^drevN zEbF}W27-d@TuNHd5^=R&!B=gO-d}%o&MVB9Q|m9_R;qoL+li2)OU#P1eYGR3fS3Nl z-sRb9FCs+E3qKV`=weJWB|fphYZ+!XDn_#Xmuhzu3WFsxp2iJ^L3at-y8h`1|Ht=I zEKaS~-;%_&vPEmu?q35<6SU6{XTtFX^ok+NP>7PHBaXOw&pIYtn8zN)2)-xDE9jLvfd=;I?`S8m80$_>B&z? z=JNJ;XrCMXs&~<%cY|N1KL4ZLEw*|G>{%O^Lpq*F&GC$2RAbs-v~o}QUx*ih82bVB zgm=4I@2WGtkVSZeBkCSlrKj#cQu}9fZ>J>j$#805x!mOJDb5aDF^%zfD9+#qdL$^$ zC_2i-WMRqh2q8PoI?6;ga}Ne;-Q*W~!4zgRbBbBNxl-Kb9*lwv78K_01I!Yg9=JVY z>JDmp)iBYNzHjO-$Zj8R%+FxlDe{GE<7-%ASF8IfV@S>0En`=(^#~u#{)X4Hb7<}O z{p{y9oLjt#E*>fN1$~VN5|*hWp&lYYPi|BYq|@QL#!^inpc+b+E?K{AY^7~){y0P_ zzTj>GU%+nJjurApbTu%;9JY7HZ3q8jU~}4pN!k7+(XLd4;mFt?M?kb@Nr%v=21+^P zh{082wj<4^r;GB}ow89!(D}yGkE3%hW>CFpi;;jjN{#XohMzNn#XFxVK5IV-gq6pX z*fJN9pA@wPkazd);~hj)S(os;zq`|H<(>{ma(*W%ImrUHyq~gE@NuiqS%|H1mSRWt zO)s>}&;UP%&+ba0LUJx_!`S7%Qt92syjdia^QOJG(Bj#5!@#43Ft>6Hb8W_6YN5;! z^{~}>hLB&v_2(eg1}Z0l2E8j>uIUe6D-XeZ(Vh!52XIQ7469f_mqw;cMf^HVMq z5jc11kiiw2cY!)GUPj9{302F^GTsx~0v-_nP#qo&i{PjeAIgQ7JqONDy8R+1+c@%E ztMJ{eJODeB;DKw3;UuZLY$|+J;hb*3I7_UmkEjaj2+Hhy2>VSceNNpH1qq^N>CcI6 z-1CoY?Bf`Tp#TmtKz3YW63~>uor!e}?85)_yXa2VDf|RA$8}?UW0Td|Ev+uA_qmY} z;N%|_T5;?e9}4P-PtuDFd%!)mEpzXhAlw-*ose~SL+<{s4=|j_?YTpPP|mo=8f$K^ zcStV9bg)l$W0J2l?U_Q=GT#?-llT9$y8-3$(J!sGYQp8xM=iS1AVa&EDy_{V_L+b> zupX(E5T^V(It!y3_vDIHc4Q(&Ii1CkSjqDSc5pq7XVLMoy^19ux#-os9BK8~qtMSV zQ~!Z2WdHyQp8z0_n5I4m>T`UjYOX$BpC?#ob+?+!beRBw;Q`l7gz;f4i13C&9!my3)nLxj#i<4UQ>3VdZ)eJ}$f)F*8&E|0UfM?R>dzVkZyT4i;4pbQ|6 zN)3rQM8qCBg&+_6;0Rqe)#q0)QD8iOkh~yCHX`#QOy>O+u4vxQZ)snCbACSpwrPS& z5*?yPxF<;U2BmqtUX#dlkKt+EDkDJb~o~B>?`F-uB}UOAc(f1b=E3xBHZC4TLv!{VNP<{AH2DN0P%AoWD1u z1ZheKPm(H~QD@QH(SJ$%++M{^(!V87z31Br8mmLDsPo{!X$8^F&L?tvOZ*WAmVv*9`yZKL>nxSG9m^3j%I>#w1gYJ0{h zqFy86Hb?FQ-jjt%6=0$_y&6HpQR8l8K7^A__lTEgQ+dKA&L-IcHzE<#cH|EW&fd~E zDyh_O6X@T!8!oS1Tp(83bxvY!tSDRKH_h}&j;Bv=aK|P)^ykGk^n$E_J0jDN*IkQr zv$DxnMN!tZAJ19spE9A4=L8N9KGX9bNt3WXiY8r#YVxG3_S%=XelXWD1vW(<58l1WuP;3w19t|KqP$UJFexvWwF@TiibX+|uwr zz2%Ylk@<J2UAqyR!e6B;2sVpYlnzarDy?id1(N`H}}%psy;SmI;HJ zrPy1)+*{x?Z%v3h*yQ=Yc^tf29`+~Z?rrdmuX?2$nVLi7 zG0CBr8V8!_Wn~2-k9X?TvJgab-9jsfH~T+i#faV=;kE{EmT1BvQLwa47A)Abb6!R#@+WNws53|AQ$0=oqN{CSzAl^(51j%YmmZ+osSGT|c_y z|7k3GL!!SjkETfhxi$YKJ?i9#sg1E&fBqfLK3uA;_z%QSJi>|DIH5BH&1B#4t~~Jh zQL-PbCPBEx^HYy$(Wz+JV?kyb4U*NuO+jc{s4Ndm zyCTW!&fJ1{;#brXxNzOE`!?y{oTk|U`EN1IEh8Z@%{;t454(Q>RB;A>0jTq79$kz} z@{WMIv?vFynrhWjk|O|8hh6l4WA80vBWboa!7?*5Gc!ZC+sw?&%nWU2W|y(e%*@Pf zX1mSIjNRtmdhfln`ZS|YT4`51e@0Qt%!mp_R7Pb+#5w1A&MCY~!Rd(c%eX+*zW`^> zq`lRkro9NeuL)`Z+!SQ$-w6j@&>yerFOX{4e`u9=i*?g7Tw(EtmsreSapBg9CsUV7 zM_7z59wYL|H+%1QOW3QioIlG<8MK}FE;&=%Hhbtv_@v?^<7w)n{I zV+Dz(Xv8zp>vK18+IIPCI!2C^Iln3Fb8ih!-2VOxnA*MfZ<`%iLZh=EK=xE>DEF9m ziF}fZqU9cSUO&S$)h%L+tY7&_OZb*HdlA}igK8o?SYtZOpsMtAO zBBcl$JZfQ7EnrJgtZl-%VhIGOE(t_xZ3x~~PKT*kVxkI|TyDL1zfga+?-m;BGqRFa z6z4=1_6Mg-Zn4R(ok4PlAMMkbGBN|Igj;!}yNV0g=qIZwA!RWpuI~Qye%nkJsC$5~ zu(lpMDmsvk;4?mBDf&Yk3|}5vF@#t+!aHO~LM+@~TP*R*7&kv$lnCbw#lbI*sum-w+!4uI$t8m%}I)eUg~qm&lmP)A=it7@@Lf$xBLP)bseELBDc~a|AwO6 z6uA5y1m`K4i01nF3<_WO*qZ?sdA(MluW7RBZGF*c#@HvYiU&H{3?7T zTBCM#cuqT3I^@BxB9*7-wbF>8I5k1|SY~>=QbT{jSNRpjx zoYJvX^Xq!QOtM-_$RpYhn|L}Zq*R|ZkdiV@am-W!POl(Q=-Z#4>xCJ0((U3j7p@&Q zU$$>EEw<|+FW>vfRD%b%AHL8#nb3!adcjI8_~G3Z$tD(k4=>eOE|vL}yT|Owc7bsrEaiCa6i)H5^Yt-34>Fq{h@AtKceHB{fjYn zjFQcuC`b5m8PwEeaEwQ(@LvG))g33rO2`G1bigko( ze9}!pln2ABS_&3l zXC8+GgE`KM4OD;sHsXkFADS5}Pxfgcn_jzsN%T z?vQ0~c8e|-q=h9{W(EsmNF6WQ%F3jEv5h;yCf0Dhi{HUvGt<6e*I=3<7m0DiK+f^X z=EzMRgp`qhEd%c#{(zBw+e)0PJ&)RD7Bo!rYE)g|`Radzrp(?Ep~ImVo(rQq?=5P2 zBN6ig=bXGsMDy`prgi&q&}Bc%$RrlV7igX8dZ+@U#J-o|XH90O?w>vR2J_ETpnwj_!{hJr07Iw=rK+d>sZs!%(m89os&?Mk$0Y|NLl|{nJBp@muokwd{ib zy@G3wnqrM9EiG-*ym8I0RhKDvkorb?Sg4Vx4OBx z8B{540;X=7FWhix=#HqDOifiKweshW-vTt}zZG3c7TjOtr%&BYGgCTYzufhv5AWp` z2xeY=lh)9#^P9>9xf#yx!+6ZGAS-xb+5h6}Wg7T+tMG_s>*cDr0tL4BW{{#NBQO;p z{p$$UU@~sviXhVg(S5%Kyyl)u)j$Dnqvr7eI|+A~|PK#<;}g z5+{%AIL3{|6z~`*TwcNv`c<7;XWjDVJ}hePb$T07HA5p`+W?3$@=LUr`wH{sIa$@m09Iy8~nwd~o)5XD>V7Gc-h!qEFjkyq@6&pEG_8 zjvBD~WKBd{J>J*zZbwWYQjQHK9Vv$F9z$|Zz-FgT;2uK8zbmeGwr9lp#OmG=HNYS? z)^3sQ;u1X}DF8^Sg7ar-=)vc0yq`-fuf<|_tIUB;+C3e!py5_(^7WpyOeC6xX2m@l zA`VqoFfKPI{tCEe&bVr!|KwPhe0$HwH*0tV!t|T+Wn)Aa8>dy|-u{#hCUJA~HNg-ls;^(Dx8vDeE2}tlE*e?sV;e^68RsiJMyt9S+ zRyXWBY(xT07kQDOW%e)N0m&=!#G0)f6DCMW(8U&9HA)uB{%Lm0{l#)30-0ttAfp{Z zE28-G>nGu-p5X2NZb(+zKw&$>0t5GJtkm&W)1x}L0)=8~#c?G(znZXf)kmf$0GvOS+)YwC@&#JB_M=exh+(%TcP`IR{28vU%IX*WV8p>n7D_1`Wi~ zJwV30QBzF4+z-={KT#31vk42NAId58hu^ie*Cj=tYdv1ji8Nll5>Ym<@XEboJxqBF zUj%Iz`;$vP-M+~8+B)pH(ip(Z}o)LV8%^sjXU15 zik<`KRMfV_C4z9t`q+q!-IH4xj0MN0_WNntlWby8AqX>Czx45q2*tp+mnGb3bAsDB zLk~9~VEFtQ{>v}6eLeSC`>d*)SUk3E7*ch`fBTv|Lis4_*iF1n<)q74i?pfIL#mh# z-L1W@oZ&D{S~OJ}{fqtO^@USVgyMqT(zT=jJyW!B(N5r-md;D= zF~##oGokE>6qAA`a;Vic`tkQ zIUC^dcB-%YnxaI`)&%|yXAv}^=N|2*zCS8%UtvM;x)NX#7W6fL)JfM})PWR0;=fL0 zfhhO!J9I*93mQS^Xkx0=-2pxewyzfhBwin7N$%fe$`!^RLO`@-ZMT@-zT0k9Bu zD#}2Q&eCg9wSSM^%j}({4k;e?Fnkz-Tv9c}qSFF!FZgLp7bVQqIus4W;a@uAkKPC= zPrd893G=dren8OMIdel5fJ{U6mu??Iqx8R=Ss>JQWLjJ{eieFM1<%*F@MGEklT$=r!{8IDN!@quVlKTZ>AiK@3#K7UhfcN(;afAdmWrr*YAm*)~RtsfV~@q#sJLEYH@f=^w;9 z#yjXEq72~C(2;R}(4bRW2AX3a#L^VB_tLjQHOp7hST`z6cCigSzu=$#_ij8snH?DJ zbt@|PCNI*Wt?>0HjT%Vwr@wH4;j}YD?I5}nXft@ND$18@x7`VHY_p9ujxIu0IkpNz zvsx8=SE6#xV;?orAM=%ZO<1W_M`TCBrmwfXa`J3#i63Bbw{@=awSQ5${Q4@--o#)m z&}pwuJDd#3O=2h1YQw3zU4M+h88;kT;Rl&pZkH_x zwmUDr$*OLsg2kfr7XW#6?*npLINK-N7A9DDahHRwbC9mCic&>HKfX?!$J%eBq8h5j zKUvbf3P0|<39tI?ahhwY1=lq^Vvjr1*B?!9olT$7l@OQ9Qxox2XfLK>nKL~4jg(j$ zuLEV*cu1=v_xco1`DC>r{G~~~RaPp-pkJ!&}NvOlrH#Kuh zg$KZp%j-5hGGMwWB~0Q$ZSw1q1?xlDr2t}wn3h)SE&-}7Y1Se(_?jgF?q$Jne-A#X zCYz<&d3{xe1|Eh0OmI;;NF^K$!pZ#woSba$Jp;!DPdnc$H%HH^g7l$ahB)f;iip9P z^EtWd?q+sq`rh9!6c?5K>k`z`AI7E#o8B7m{0mh<&K?Z~&5Hg4II>@(TJsF!&kU=% zdM`gW1s`dg(%fG>9aFaa{oTvX%EJ&Gk1Y<yAQ{262y;D|AW0u!|V2M+Y7&*VWD1CN%YJc=k(2c%zF(N-S0b7+Gh^= zJ9eIZ8eF>w_nAPxI|;US=&zpLxACmfzWK!#{!tBQLVpW9ytQWD?2Y7)Hq=`BXftGK zxc&LUSNzq z_bkm1;dZ2UlPx(AI~$U4Mxjl-z7K#Hze$*CVG~6icu9bXPh5g*nFIP2;9B}=gD}D; zjoK?J?%qEII2NWm{sLf($}x)2#(Ky90>VJzIuI0#+X8GjsA?ffQjx*;B@)lk~V(uz&=SR8HR*Z^sQ04UiWzxqq2wi5Abl)LdlAB5m~uO;8W zkR#6Hyt=Q0K89-0j{UP}_HiOz9P;}kV4&PSjiw}~F{frK?{^kUpWp*WT3s>mid#St zoZIPLoj9o;O7r(Ta8Q8O1&ROTw6&L92FU^dTIgc9@hSl%V>=Ujb(wNr zT;s20{`aA_iR=_;0!nv*HEu=6XL-0j$6qINO1!dy(^R7;m4jsH+ACkdA!5@wV+m#R zQjhl}pi+`aS;^LryxiqF2cF_%1PIdiy|dq&+NQF9q*1=obWl(Ixf#|IfAjAX%>PhR z_GIbxG{&N$eBBL!9o2g7>5Jbh^>%Up3dO~UM~X9&v*ysmv0=z~^)T1|NS$Da5N+pI zCjGEjv$jLPtg#k?>aMcvAy!9BZ9>)kjUiig|18HiYs6@HaR4SX_4_nHWpY zZar0Wc;U#D?HO>>1mUH=lB9l>qb7RqvvSAl|K?zG7+0FfO z!S{mN0I(?YajWWO^wnYa>=(h|KYclFwp-4Cd>H8n zH(W=Is#Rx|`(m)%<`*-f#Ac?dV-O8xo-tK4043mk#vm8VO^`SdNoeXZ0A#S!D|U(ef;oG$L(~t{H+f%epjC? zID|h5CnmiM-Iw|20Hn$m;(?Ym0%ZN%qHfraR~bR#0NvM^&ahHQu`VX zpw2i-HTqIsbTDHe0&9UcYK~A|7|R*daA@LiH?}YDEjo1G8z@3omp|UI$U{`PI+Ebi zzjmKo=(Dvnm*%D)Bu_YwLu?VY&QsP0@L+XMcO+K$-fSX3}4O z0lDD+Gbisq6uszFdbJ9b5}E(cPBpU5AL1Zom2Pg+>;Ie7pd)(m>D{rW+Lg0;ed770 zV{7Kx)Aj#R#>^|{FQD%q+A708v{evm6%yuOoK+C|^k1}9Wnp9ITU645J60hh5OZ~2 zX<+aFCat2rdNw({`ZPJ*znbDOBiW_mmT@D*CsG&f8P^QnHe(p|K?=dwfT6&O9Du|> z+H|Nk=>TwDk6iH8EJ#!|sUK>}RjRvCR!kAt@zvipdG5||l;M4|DR2x3A+Vf4cwF*M zcq~#fsRdaXPNv&Vu6n)dw+7`-(Il5kq~xNY(Q?KTo3BbXRNoNLLMGSRzKh2M8jURd z>Qif)gT!kZMMy`=sCvR*ttFxjn}zvP&x-M#%veBn=y}Mbs9cnb%j5Ph0MFxzi@VP4b4P{s;VXP}YgN9iJxSC6!5{65U^evdZ2&g63F?op8g7V4 zW6v1oE(hMimi_7O%FBVWvifT6rj$5ScWqi0PPZ+~q$di>$+uwZ_rl%L%GJ_M*88x5 zT2|>i*scQ8^JT|MoSvp$V#MUj@*;hOy=X!MK}+`@_S@=~M0>_zZB@#uO^&+-WwY@! z%vx4%h^h<|tkrwaRj%UJf`10zzop&QRO{>Ea(l!Gp#BBmhX?-@-gJ(wmeyNTttJpz zj;+G}q9Q|&hGdBDxON~FY@+)Nr2m7|fApLOII zxO?fKZvu<$;R?9}fgQtu1#Yogc@2G6J9D&Qs%M*H{DhPy2jKPRglB;Hm%hfFoi&A< z%QDa3s$Fk%TOa@Di~lhszea6Z4HZ2>3atNK2dP@2{3|e8L0Gu5z5krh@&#dG^RuGT zd`{kACFrXSvByN0U`Q6ggIntON{>Be^dC4F!Q|)28~H0Y~tXGs=+PKs*l19DVc^`?(%_Y`udO^r)5JQt%E5KeKOzSc!bj73uBk zn6T1(g1969RQY(vkFE*ikdw5r(?NmIwq$smS?oI_(R<1IRPP^Rg39m4*4@+>OM+Yq z*%0ADWwya~2@pjlcGpfp>d~Ph7+I~pbf;vUHd%f7a6P6x0X2)G??!&z@*%E#Y1|*I zwPXqo@$vz?i3$hh#zCJt7Lx=uab7L{b7TbzRw(u-gP#e8E8c_m$&4Sjf-%%eXmKm5 zjN+?I4$8S_&5>H*hx10y%_&>fL^HUSkK(JTxJwL!N_f{1jG3H!41Prr?;0J_02laI z01fcR{0TRS_qqf5h*i?T6 zcFdd(CA*iRv${csN!ROD6jG?2yBMLpMNX9ewzfTbn$6g92WP36&`)AH7d4jszKiid z_rmZ6RG)kx>X-TQgkvICt#h;KmM{lGd8P5=>ICW?RA34$41hC;k!u~> zdv>Rllr)=WV6xrDsF~;wp2*T+u>6ns_>(;(ed;tYrMS)BFdJld#AZ74A+__U9gTKT zMx+_5*SY808g#9|?U=)-*;KN4 zxQ7SZ92mN6TnXJdh^5fX#e|5T&omsHBh|v&oY3aJdGTexMbm>iq|{Y0Tyg^1v(Wk{e9jzw)Np1F+Ael9mfo*Rm~MAn4DUa6$X zMx>(asq`Fc=2ZOJGHs%Wp$(xtq@>7jbGT(Eq-p4V9RGW-#!?se$QFB1Yn>Ymj?ku_ zQx`VM;ITtrS#(vR=?|VOKpsWDrCE86{n^fvQVonpl1b%-qRq5({mTPF@F36^AE^_2 zNQ`3HU9LGBCIyQbTX)?>cZ8~k83vq%L1$$b{dOk=ng;r^Ajl_rshM!l1&#K5eSRuE!%i`=Ayi*oI;wxFc^DdD4U+ds2L&v5XhsUSDVG6l_v zoqb1;L7T6rG#!BZIl3%gO|_6_N*e0sup2m^7$yU23p@ygIo7#r=6Cl-C8C8V6NyE& zny(&4(shEbQ4(eIH&N4_;}w;+UVoMe;rR>b#4T8idzCnn>%!s(r>lNIUCY@>gh>FJ zRz#Fo^d@9pY||90lLP)j5oYJ_^Hw34MeC$*DSK!PD|gz70{0q$O&T zRo}%0odt<5D0GUjTm=5yKZgQVyL5-NAz?C1ClMTkNUkY-dO=O~I|`wglFHj;A(sPr zj!d=$AKB@Pl8qXpF8ng>PCg^khEtJ9NgHO3QT_U_fjC^Mi4-eslg$FljFGJKPx{uO zGV#ea8LYF5sK7FX)%=KPYivTMNLS1P`C9%jNoqFR8pt^l?F#-VgX=@$4VoskkP=r2^C=gO9`@~h*d~VnQW37jB}`v5?2Zed*6$_`d8LP^n$Gn z0ha?*kv1uWy0#C299=PTJJIkyaWgKj3Z6$;L(&j(P}M~TD#KbnfvFXY&E9jY6Q@q< zgf5Ye?v(r|j23`y*1!(0w%bGl!j7c<#j@6SJ7&VR#s2HQv!d3YABOu`BCtPVwYq-X zxkZH`eRrV(a{*$9kt(4ljlN5Zpvv(CuJ?y9TrSI+d0`ku4Kct4|D+;9k|l&3r$Ds$ z-6~92>{MtRdbNNEuM|EPMlo!{Qzy?AgcV1o1WejNg0@{bYRIps;WamJg!r~LIGCZx z#~<5-fSXb4crJT@3qd-)G2l!*ZYOuTS55sF;GRkO*r2u2i%6P^N~j)Nh%mOGD=vkl z5;?W1r%+LqjKw}Ti4A0a%BW@lcECq6FolimB9sePN%*p@fT_>Hs*_o3S%MhF%Yj;w z63~(V>}p)ZO1@@gvZM2Gi4g|%tA>3t*eb{egVpfeX~J;B-V|mRv`8&u*W#jb4@qF# z{-KQzzeMxHmy<+9f8#mlu?ZR`Ev+fel+OlG|G75~ZwE(v7aM8g#86ZUdF0U#Qm?YL!{bs25f(GEneo>gJPnv3D0M=ZvwMD*ZU>CRY(l~@0!()2tJQtf%9Sn{^Bdge!@hLVX#P69{7ZW2#n z_mPJFkiO1B50Mb%+hE!ZELvNw%f<@pFx-k_ZES4Yq6G`!GsW=kt*pb34EzF*)%hh( z8Bw#}A;LR2iv`K*Xh?UFN7gCirjta3Zpjv367J2(-~rB0$rpG|Gr@e+_a6R?sd9b- zKq$fW5>kSK8K@>nYvAGs!@{9&EWZvR4~7m@-m7DL2s6EbNO@>}hHt2fT|?EQL~B^G zKyWh2r#n-E0?(Qe12Q8qQ4}*(Y96I+rZU+cfwl%7Bif}XTgq#TtXtn|@p`1^8}Dm;~KICx=_fEYOM2M_vhPFm>K# zNTflKFO|I0M3_Hx{Ow_#z<_ne({{^q08Mxi!fh05t@}&=$Vf?bF1w9TFXy zOKH4*MLILDY(s)|6q^9I%NnceIc2p|Hg~0X#0Af!_(5S8;}Ek4kqMD|pWAV-DrPqc zHOSdm6KS#(oj0Z#gk&8@m12OgltImSC~`DgV~d#Eh)d2WV?j~VNzq8wMl&sK z-6EqkY|=4bv(yR)PRY$eEBNc1Is}$Q9l4FrfGOBY{?w74omAgfN({Gek1UX;2oCmz`vxSx9F0FeI9Dyf z!|7`%s~2gH?Q#E%)>dEgW#p#!u;0Oi0wC725>`|RoaH{wdRz8zY-irc{VDZX{QtWk zgFE;Eg{9WF_ze{FPA-o4hZ4~UF&&KJfXVU9bk}|hx%)j!YQ3er_L;yCI8ix}bs#Xb z1Q*wj5lT@Lr<@GlicEx}FtixEObrpJp;DCl zkNZHk)8)4WMS064^01u&*$BS1HeVG;yL$yTqmOXyI92K~Y7ROkW^O)}S?(_$L@~A} zE5kPYvSz#yZ42Z6D)90E`4KYwe)|o&SnS@twUf_)%~ny-@ryiio-&F@nb%V0k&CR( zU73So0%D2Tk#_aH|8$^;($Kg!$IN8&ob*XYsBQku7fGp&%N9&UUA;1%QrV3rIta4U zX^uPk*rC%5lh#Gz?t`|oDtHKDoyS!|h92eNEp66r}T&o^`4hny%$bNxzkGK><5}jys%`mPz_=>rIj>;MkYdaOY^KUQq6ayx1>cw zZX-JpFB24;H&kB!5!-39K#FfQ8Le0YNb&C?jQy3&20lOrnO279MAQMf z=l^SpXt-@H=L#fuCb|D`Jp=6DiXfmN3X`3kf5HXkSj*p|l|+=_ z&rP=X*!fj#=&wAz>+ku68$)BlCPUumR0L#qN7$TtuoB_Vv=9SE>$PoO%}O26q1s-W zyiZ2FAoxaqgf|J-;4c#IMdDLx>!J;*M_JjsW@@-1oS`VyKZoq;L(qBZ?U!*iFm z)4-n1CZ{jhaW{WNQ_7)3Y`UEHEP9`LG!?&eOk$e*Qy|`l@HgM3>*`6vEGUa^=sf(T z9{?UA`rfDa4!Mq|heqqt1;N%jg_WGZ97mmJXQh8zr%Bq?`qx&_E%`i#2zq`S-N^=>QiP%Ea&Rr(@pS&j+P!Cf9X$>B<8 zr{WsGD-8H*HKHG|D?*w-qD|+5UqI0|Bj1_X-eTWmO(YE$oH@zWWKMY76SWB_8rSos~6O%XWFN>Ru~sUxH^Pd6?CaFW}K=NtUyH-vf30v9&f=WZ7WEOWu%3)GK7oFdoL|XaJLeKMCnp301Q0_kMk3Q?VVgFl zY;7p`C`$NuIN5eP7`ZY?!E*V)3m-PEBTHcO1+J{&;^4hbhe^b#7`UV0z4JhNjt~z* zt?SZ28A9wWd6oZKoT1&ucmd|j~@YDsK=R_YwW@!;TCI1sIuP$#kHfH&00V_ZM zmlxR%vF452ue}}5f+dS@&jdY=x4JDi&+q+FsPoy%1h7|-ikRXR?b;Cm32fQg_+Uum z;PXTz_$<4L1K;_d1)_tT2sANbnKB-swn7#OBou<62R0uBCCaDgNCErbQ@(R|G6(;; zLp#SAu$-|UTmsinUtA9I=>7^*4sT;mrgZ(iX{yCdbQm5yyqfFyX?9@K`(~RUX}j$i z3iSB;YYUE}Ax{~P+L+!^S0zNPk=~D?%|8VYimB?0?gmC7|kn7JTClET(ntfnauqF8*O!vX~o_An_` zU4WuR7w8I2RgG9FFt5jG%76sp(xRcO!HsDEeaC&=>OlpZN>{k+b?g?c$zj-PWac5{ z{thu1u9*nFk0a-0ce03_1{Iwu)j5C(a$|+RjDtV;Wa>V`lt7itO`vA`O%|iVSZsSW zISv}<(s}H7Qky@n%2sMJMVmagxQB&N*eSIXRzp03ey{+~zt?_11R4&d1}nw^6U{>x zn1ml$JbJE9Cbo+l#e|P~PYqpxO@}DUh+eSUuGET0+A4Of)4W;z31+AQKNm*l#E1#5 zG`dZrf#f}?-)%OBh<7#$&sWQ~hzQ@C#9$nS4ml8mB`F=uzFXb$j}~+EqJY0F+|g{* zS#4&k*E8M>)Pe5OdyS zg$0%+`FCJSa0d4W+)D9unmH$ zWx1qN9($Q#-f7-Z+CvHLphp;|3Y&9Kmuue1iK3BiB=WHyCPXLImvpe2nHC%#z5s)9 zO=Lm)0#>30ExKw|BJKL}9f9gz&$uF)->tndy}tcuu7@--i>~Zg6GdLRfdB_w3D@Zi zf|~+bU!0na+1f3PH6vApwqYscAu#v;Y<`nk9H?3nmvhic-5!VUCIV}%Ot-9WPJ^bR z!W-&cs4|bC*rM~uSXjyDDPLO|5uuw;+$2h#=r%*LRAIa;dmHtGn2t~`P)HwBZ=uwq zGud?){FAkUJD4N{w8@}LT(**X{G>*6Lk&g!3dJGWcJ+(^dYkrtW~nPuy|c}A2&1e< zQD{BeaxodZ1ZF&w8$>`qN-`G)@_VJpRCu9q3RjSWG3>?C%?GQ2obgP*_J<7o)MgOb z-8{c7ez`PHnkWy8I)?f|o4T-$s*V6SGv zj!r&$Cfq4)tc&zR+s-Ii8I`b=`!>Rh<8*J4snQ4&KGW-~Zh@(-Py_ssafBB z4TR%tYmh|};urfhR!E5U_+X}Xz9_vRMzf>@#k?1?UIcRSAHUlr!BMEYgJyxJcAV`5Fi& zC`edBp+y99G1|(xMA8z>8hWOhffoJBP6kIV$O4A!2C^Cv=>BS(x4<6g5R=_b(!o6X z=)pFb33*W!QKM=FDu97VRtmm8M-AMQJ`}zKX)l)ShB=}w$eW5sY+V(eY%Cm_YN4v< zJBr?9hZHPUcJ=qbICM*xCnDj~Zs?t_;L&#yH8q8}tK!o$UPTx5tC`87 zxg3N0q~h&37&bvRXlc7Bzd_;zTBFq@P_W#|FA*r5YE;UM@~MWzF0Te!S%g~|NGXV6 znMTSuOCwF1h$$oxbQohxIs~skb_cx!2^>Ux^!-Ts3@_N|s|PS8oVNf9G5=JTdozBc zE*>iHr2V<{j8f>ofX%1b%=uey0W|O=rSqZjf@z{nWV8SpEBs}Ulc(*c*+e-`{5lxP z0jo#hE?P{8;ZLsxTy+V4eul&L%gREk<-%1f_gpbmGYAnXt;BoeQ(f~itT;`R?ZynG zxfEs}u-eArt6>qp7)%atLh;cXDh~HK34?q?lc7%oQUJW@)puokLdV7zetV z#}hqlezT6A%{=Rm@-#F=WGOA|^F$sTusJk^hWydWdGw|_EHE%4v_`}*KRZ1k3U94e zTfWu}aOM6#nE{dH$g*~NzN9uas2bs?%FclYYGNU@6f)u7e*xg|sZg!VW`3J`o}?w97cI@2j<~;DJtCAFgt6Ud1)kHfq9j5g8hCIJb753cWA8P227IsswK^w8D3=0C?IZ<~nwV z8`ETO9#OM(OELp9`qhpfOkcjM79<}@`Y87W;J_eBhSRoN_w+~4Ch!d?h);u;`e;uv%-4!t#0 zSB@}=jvH-nXE95n~ka}ThSi}@}fH0kj391o$xEYsZikoLf1jw zKR5gB@L9oxAh}u)_O+EJ=EGuH;Vhv6w17BqB=LC!-U;$lQ+ydx8G!hP_zf*khFfL9 zR!*;&CeS8$n?tCFJkS>86};PEz^6YI&^e5rJO*kDQ3w(|kQh?|wdVxD;-#0bS3n<~ z0f9Ey4Pl4VBZi&~CWI6zE($dtqy!Hx4lhgvrY5umxGO{wA~gY!+5m)TVTtBg40&pO zb1OiP9CZT&7JWDjZTpkfd1zs*aW+Sl!^CqwDGsd@1Vo2{ws1PTD1uZ;j{oZ29C{3! z8!3!cw+N8M+t35c5>6T`of?7Q1y!Oo4sN8Uvq;L!sCK9}KP{**baHR;hs$-nRM&d8 zwsnh`oWwU(8YXUZEJXP#2ZBsjcq;z6Rw~4BTp>1W5^^TGYWb zlEBC~jFyxHYEi9x^ZE5nQ7vtuAG`8aNT^&5972o`);5SkjTlvHBrW>6YV0>b6>jq0 zXY`b%2MYCLX;^z^xxUC55zmil7?xwQRHTSvts^CbIk&?&8~jHuE?|U3Ny8wfi!9Ql z`8pCC8eKUTQJOvn3#0e|r?g?gmK9$i90T+nG9YuPQEneAQ&%1k{TBdSeB$hOi!8F& z_4tvftzBdkhZ+;D^bn&_z7OHfwDJ?OWE4gU9|tRG+Dg+nTrH$^!%?HS^3i*Aj4TL0 zze~MBRk_wyV_4A)&|1~OddO)5{R@#4k`JbcUJgti2{T2-52|ftWzS_z!pf|nEyoT) zA+}HC#Lk9Gk8=Ll%HakZlhZ85q|ls;+t%9VeC&B<@rUihHt1a_{s?vRRcicGk%>3M z5jj{udl5PiLQE*79U%33GJc-&2W|dNG~3iifR|)m=bTN7QN7Q$GTjlh6d&4%Z<(&a z{wg$@#+U%xZ_3A1G^1(6ScAI^4njE%XoA3| zpBWLKWZ+0rJ%T@c1Ft|>sTCBNw_QK21M{?i4JPKuwXG_v=fuKd0t4(Oz*khi=! zGCS=$GmLBM+{NH?D-N4rLLlvxb7RO>O@jihXvr%ygm8AYctNGfL*JzVDy zanh)ft3>RX8zaC=ojrBw$qCFOv7^SxAXg$ z;{S=qr;-}x-0w-Lg?c78jocI#-s0Avj2pr?Tv1!kXQR9TEOO!Ka^zsn!S)sfho07P zWFllP;mDb*a@R#sahHU6&wD+Ynes7GhoZ@TpYeRy6~ZU!xaTU_n%h*+K^{?BicgN@ z7S>yvlw=}oc9}1ObYYwL$$;-P&=N2Cz(+E57{HMlufs_&zX#IQmlk$4j0^j<7H}B} zkz@w}{9T}gUtr-R4@pT$5(5MMMZg2*K&2w!$}h06F#j$E{yPgNdHg>r!6YaJVfwp3 zD!+`O!km!))6##k=m}#&06{h|m~x?LK|XN6`ynjEL!uSAqnUNJG)S>};%g!k?y{H` zd&4FE^j`c2-6x8ZW#T)e#9x53K_3(dU`bCKe@t2+-qM%{hVC4RT8V!?ECo!?lwTGW zqvrx%(WO;V_qRt`$t|Z>fH?&=CZU!kp)^ZjS}zXfZ zru~kGgY$5TdDV8xI)hUW3kg@Rj2b6pf0V}?eF}sH*z`x%1}0(>k}{S#!ke=;=5M+r zk5LrD5oWR20^cNoOGt|rv=LJB(Gy>?Q2gg;Vt4hkS*DR8|8fDywq zHrFn2V>I?#x5VN3yWFO8@a6bm*6Lj~8_%g3XE7wBN6lQ+CBtIaRFs0c9mU?#M(|5(OsmCS$@`^sWTSBH zN(Gj1(WLs0c>Dc{0@{f}nilu~1a5VC5ddpijDboujP4O#8CmQz*&=9AUSPE{tdv$3 zIhZuOcSvQx8^lx_ub-LfQ57I8zI+vZd1&hA);r2am6(OZmkb8|{n^b&WlVh5lU`&N zcvCd2*@No)YDWd3l*(!wpi%{ye^r@OJI2URFh&RHp`p83XdyH4-Y)X4q)?-VwPD;#k-!#Q(1!GI#c+3Bk2qv#_ZsD2!{4(Sh5>kH91Hjm3b z7ZNR83Y`$FreAx93jUoOhc|`Qs$tFZJ1=ad`Vbr-By-)0dMM{fOG_hlACJ6CFTzy|0(h(_^Y&GGLGYQivU zmIgy5o_$NahcCOjQ~l8OQGc}Oh8#Xw_DhyUgIn3CPq@eM)T1)Yq~k@UD-?f;E_1oB zH0>%5G~=n+PZi-5iqTKEvZh1d4=cA&ZZvndEXAu-DWt(u8fe$azz6L9CLO&ia32MT zFXYIW$miL&6D**1ut2;xr!52G;J0~&(J)+?JNjHkOW3TDuw=CYaGYYElti|$$1ei< z`}CfJ%E>Zp(ZT`w_J093oH!jr)psoyoVFKuMiQ;_N3=>1UO&4hcV8QE>KA9~N^qWQ z!IjO;OjDJPTprVKWUvKYwDCX)QY%!_@@0-Hi@GZ;nITIpqQyz4dWq(AlUlRReol_` zC_sOVoQjn}{C)PE-#%8!gQXO0R0Ut&tB@EL{il(bB&62*G;va-7Y87-0P^TSHP&SG zw(ZyKhwF*ked?qL(Xk;+Ik+#NN!iLeJeq*G8GJE?iQXmp-Hid^bHhfHc` z9kC=)EvaP4e-(l*%+{isi1nn>QpH<04D+65a~`~O5FId`M+mfcJ(HK3W55z$q*w2N@$Byn&w;oSdXkS?h1$TEq&q>qGX`z*L88| z7Xvn5XgHeeYfdGo^SK&fC<9|e*2(hu``b9!*2&e5up5fx+U=q8BlXu3S9%}7B?4ihU-RH6id;l2}6o8{^d)cjC685hh;;Va7ws!46ICVKx@abMxo z#us*-;7;&BOK}Q;;9j7?t+)h&1$QeHZ7BqILa|aLxI4iqE(MBfks^g+E#3m{uYKwJ zAAIwDGvDm&?yStc^E^9y=kA{8oWm*op2aII1ffp>X{p}E!nO-iQLag^kbPsC(rdZ^ zAKTWWgdzUO6jYo*5|(3ZO)9`o?EJgoq4E|=om_H3$VpQ(jj#GuzT#@Xf9XMDs;As_IY{z-3%k!ZMOcOSDETI;dcftg( z3rJO*sdhqZd+1M%wV9)6MLo538M|w2)jF$mq|K>*KVX!OW2$mcZZKSJi2x9n_+ zXuv_hx(EqN-r@t*;MvDh?Lj@hyX9kA*@1;M0sqehF#qU)46V>(EcviQEekxPX#8l;moZB+kjKVx<@3w1oL*26@Q zgRYcq0N%C8I6ZCwF!D*G;_%uMi_uQ<0)=oQjny=P=Q=^4Y|}eBDdWX(U!kkDb!wyO z91sL@wOrLdW6Q(XW}+26<{pOR$z1JGt7);cV57J9$+2N^iS4lX%E@zro|ZIkbZa4s zFlL{7j=~h%IpID;>bbHeSzAgx*x1Cao1F$ts4kAlvj+@PN>KNuXWQaI9gfjGjJxFZZ-!) zPBs`4gozDs%fwMv?>B06`iCmV^Wp6F=YODu3F>i_hZzBP>(M{*UNa!TfJIZ@gjuRK zX$wEcnMUU|I1}S+l{4NHgnZNj+c7XibY6om^B2JHnqFKKr7FO2mmMqZfS|5!YOLUI zA?G-*UW(>U-;~-o$>O@%kR?W4E`s5u5=LK4dzc?#F_tJtQ>(2hCn zXEFotIdhPe75X_V1O1xy02L-6GZSl3vNPHbbgAz=pU7x7`f8AATVG1&ywJ3b3T1jq zOi-0kW?V2R25re6zQm@rA9r#Z%kGC zNbiRuZbTZ7e%9cr!?T$-tdvj7P~A>|z9&@GTukmHw)H)yrUP}e%|d@Y?0VlM^hA_% za8?);=unHEDK_b()mxan;r_7gpdBn}s5RZap7Zii*an3d0f-03__Idm7U` zQbm7I3erH3@yEFz7UOi)touer(#*9U-gMo)^`>0zTYyqbwxC0z9;-@J6z+&v^!lZ; z6Wvke>OVV) zz-8r-VXp<^FdaxSA2frLpn@Ik9bF#Zui(yBw2LKp*!iY}l5bgFzVu7Akwm3Sj)cb2 zSCJr>FMEHeNU%>nN)8`AO~qdfgAfU6rmx}GI`J}g(tnQF6Js*N-ju4rJRo850~wBq z2xYj6XWq*(cHvh$48a+f47}>%(QnNMJ`oR&li+Z105KK#z`Y=o^mRWA0N|yr#Z8Y; zX|+Bf{D;y#jS%E2ZDLovkK5pRQ*UmlljS))zDgTY{_)wb1uHCVSTM=n1%HVc&JuB= zionKkc{Rm?`{H81deg{=F}dA1Gurw+DfVb2n?{oC1(q+4?5bjz&4wZKzpUP{czE4s z74g3S>t%U~ex<;?O#MD+U6oz&lOKPq`nz_jO%_fv7PT3RgkJ%Gvg$d-P0_ywiq$>I zW&BimzPW27i$*lqxEM`8wkChC#fPpGZnpr1Ug8TGnCE-rxJ#?D8YN|#AR9oqf&bfu zrLZz`(K)+ya%M#DSvdCinLpCTIJhq}RKJ+<;X@ZzLYnx(s^i>Xwh+)8sJW=_a+8Cs zMr)49uqlf_4*fiW$@Im;2veZf`b)GXkaLNRYt^%C^8yCMbK@LEN|J22pjEo}p5uX}L>vyRtdroWl@bz>O{FO>3n2FCvy%wqiTL=4P zrqyKJr&qJ3c1LII&;wX%b8D{-Ks0{qavBX6L_M7)540x0C=lTV3N^BXjS}o4^4P9D z`J7By($60=Q=WrOypC*}JFR*^2b|CCGfXw3vQ^a!i%`WP)7vQ*9D8!%EMjK5Nq1jI z;qQQj8m6(}Gku5*!Hp7CJxw_(H8Tjj3D(G^C$?FP=M$j~u8*=R#aCnkwNUMs6SagQ zdIJgWT~QMjW)cz$b?H!BIj)21cJOGI1G;!#%LSo|xn{Ce|5ZYhyr(SbyT*1?{Og{| zB~?5`!FUznC2w9x$9i$)8+DddPH|04(`sjeEt!iiN%xx1@2A0tjUkfWhM@6luO$Ni z0c!1tZdTfkq~!^SBh$73VU1(*$!3}R1l8blU!kGEeyxTbx+5CVsy0r!$*a3E$jrwu zWBox!WN^S~&z)|)PbFKbZJ7*{fwRXYksDhyMVQU6`{;XZn3sD(gEIg$`&4R@@f7PEJ5Sh;GR6p# zQ|`EfzOTmolpp29rVI@q7f^Y%Jwn9J9id)jZ=3dkt{FGmlq|ak>dLDudjrNBoa;~N z4asij-$^$YNMGhj&lgC~=Sj~pmbOZEm8J28L|kxX;qtK~?=Y~ag{>3QpQ;;~L$u7Ja$p?sf=po_ucnV9g$BR`K#D|Jh5N%rn5E+)crHStRI?R~LYnU`+b*qNRW4-w;l#RL& zcL&P_ZaiK4GFr#Dn;%EE|M?6_i3t>j#k;TTNhk&8u1>Qyyi|YkC%u09cf`4z@9xTN zV7`*uSm;D_9hGj9_p@giKEG-)p&iimKAquCCdqWct||YX&)iRM-YY_9UECWp_^kD# zUb&8oL4MQoL^U;fHph!peOX+u>S3%d?hgetNAUY(8rF~V&KtXkZ}XxAMDh_cRI}DZ zhrl-Dx9N^ERl6|%NI`Iy2Ml6mlf z;rZt$I;U@R5}Aeqg(J7>Vv(nH2|k+djBIo6iwG;1BnTb}5A5w?&_Ozsz%y_ zp^&fYE8Co5yL&Fhto3C~1ccJ*T*@yw^!XT5AFe=S_^~aS(tYaTi9{^G*$lZ4c8@s3 z@-WPv^)!!62#ojWc4=MnUB~|eB`s~;Z;Z;v;iduBQthu#a%B+%aA8r)v9BKvv@wqG zRL7k{pqrp_FJ8A(VEGRNd(@s9Plw0({fBgjz-8flUo7blkS5XEV`?g9W5b`C_JgvA zR+kn~yT1Twedc)oyw4B@Mj{U$E3%1ImJeI%Kmp^L!OjcT22Eay>ByjoGLHr35N>Kb zW>f16e0hC9oUI}4%Bbihs735Dhh2FRj}e5Gp`!>yFGj^MlBim9?Cb0Kw=^75yirQU zkB)A>gx}dU=%AhWmdA{)U@8Qy`ShRB2F4> zIBK7E5p0!UQBIBD$>Uz}Hqrm}u^XQTyy7al4+bcZPifTkdHe;t9 zM-F{ykGJ9Xijdg)Ykd>0>sDWYf$j3kTYiF27iKaxA2q-09! zJHF*n@8YW8wS17RnKrLUl=E3yUST1-yOQ8LArUm4ArRSa1|3uO8h`u3Xm*TtCe~|U zGlQ+hXtGRkSZ{)TFh6Z;rA}-~LQ|LO`JvLzeIaQ8dAILk;6{Sq$*m)EzBNDQRiB4q zaJ=0d#&08sppAY&{$#NmQ{`z8)(m~RqV;1z?exsQC<&l)z%x;(y6c8uS1@Q*6w&o) z&82mu=E2uu9%c%lv&6Cr;K>7?N}H?E>1OT|Nn$-e6o#68+w;e?sJZ4T2aG;QC;XI9 z^hIwm@Hw4Hf|*wk>Z*p5;vK;mMHqMjx?0Uh_O#4Z2sfEbNgNgT9#+MEt!qs27of_D zr!=fUQ7IJV0?lcra2cZ=C&i>B{Cf(YSOXMspq9XGIirY6)4mH*ifn!$#c*eE{W1Oz zvzJ#%+{}8*zd_`H+ou+{)I)wYz(|Y>f%^(r(A@p4;Aop?e)Zkd=T85RpYMO+ZwEl< z7oM7ZZqr%q`cmD?)wd>=?`#COAj*2Y@k&a;bI(3@StPDopc-UuR&h`4ik#4Pb*WQj9Z)xoFnD0=Fi=t|tv zyPfd_5 zbCXhtak(>JkpRaTO~U<~qN`n~Nd+<#gJ&iTrHaiW4;Nr?I3o*4mw@1;gic*tA8t(S z>fp8v`ttE(sG+Hsu`h^lUwm#|D>~b$dM2qaS-f;6!sCT6fWJcZ%fg~_>vzMEcO+!- z?WjA6oPMlXSym7^vb;-)(Y-#y+iNQEy`<_?_`Afm*M4bdIfEZ6IW&JaXDV2~Vc61y zT~YKmn<{J_CvzmQq_;0gCO1D@G6_??Xk=`Nw{i1W*N11zY>j?|y)faV!jYsxqh$V7 zxOn@=e9t370O-2C|r3M9;6QdFy z%FTU_9&eG-{ia&_5zzo9cT{)#J}eIG9?OfO=gnkd4b(v!YGry^mz34Ry32#=k|k;N zrdz&%xs>fp3d7Xs!?kSFEA)+?y(Fp;f7b7HceEcLIa=34v1{g?W}A1# zv5*&iI`*sI@x{5u+93xVn6CV)4RAz5Frd? z`8rkw)`X}aGMPzVk4U36J*zk@H>Jrs_W{x>aPlWvkImw~4Uf47$o_l_Y%?y!? z8E35nrwj1qFY)vs6yJ*=-xzRs=;$p{Rd654nPf#p(|x+7J|tk699&@fsFxJOA#5X+ z!#k*1DGd1F=FJ`NLYNBlcchQlh4&DE6?`-Kf@6^;j{|o4@?;y-x3C6ZCqjx-cgSQs z%rx5{37-8M(xLA?UQvCL7%>k23wY*Oc+rT%q-y8D8pMhKo^2M|wCn2QZhEvb$QYFOI8eH)I43r@R5;9(-@pDKvAKcO6l4+irp;~%p6g|RjfrmUo@sqIv_ zMpk22lb*vqg>ovS3`V%zmb3BSdRg2)k@zf87ke$ZL>7c{t`Wm%AGG|w{w5{cI-SAV z(GzPQP?#FO@Z3e@Vvx;Pv`{<&$5Nlv7>Br3L(>l58?^)>FU%YavNe#EU>J`Bh?@>e zs_vw@9P}84<3r=MVhVXm->N9jsijV==24rPE6>{Ic^T>aS=cj+BDgvt}1}W<5Izc^`O-95j}Nix2?)216|unXdvEJ^$#;H;;d(MZQe90v8-+p~Qah329tEsYR9*noB zkdxl%Ep0@W^Q=Mzf*V;e^;IoLQ4pl$BBP&38AE$7G)#QV71>@2y(nLPO23g6FfFu} zwzV|k8myYIWZ*kY93V@O>{L@5L}PW$tC&gTT+grQ;=O_c;IJkB!pwXJtAeIe@=FYW zSJ^a@4jw*HsF!+od=FZl4Rg1ROh`5nC7s7xPto3 zgVnu1#h2Y9YUHx_di*2Fj%kTlPe+h|A?M;Q8I~RYmeTC5*gNf;y8Ar6l?z`x%;C9Lfe__D0`LXQh%m`dEdbIJw{nNvFiqckimCw_Bd#udlJ_}AE7J0JHmHSAmq z>-_4QZc9y-1MXLHI?Pm@nvya12Ju(QDM8)JY2+I=01FWb&#t?b8|}}KN8=Fzz3xvs zKog6%DHgZYJG_WXJM#(htJGQF#MVzIg~7!DGe}`}J#mPlN-^{=U=iDlTk?XyeD50b za=Gp$7J~?joTj&;(dLdRxw<{(riMUQ+x`NgAz@54MtZ&<(v_-!8ot$mNo4?DR*6xkZ+5oTE6c0_);CK9=vb* zf@tV}891DxMoDQ{9@FC$$w&KN*XtV|f4YufP*MqkgTk!A+0%o_0itzERcL#<$z{J# zOsEwvs%7dmB6y6FJKK?t9DY_n7O+(`Dx()cs~<`eJ||lM9HdqF(lI8UHrpoiHk-ZsgaCoc z@}$(iZ~ekGNr8HrQc-tN>%6CX=s%YInPtUbf3uXg4m# zCA10aX0G76xEu$b#akEL>+${KC!r>McE$PM{1T1D_O_!&8qbtaf2_Hg8jH;R6w_#f zRuw=%E-Myx_FcFV%3(xLB2pAT7>*-kIrD6PsmuZA7*Xf-7C@AqNa08M9o&k;#jcn{ zRE%aYv^f|=(!*r*RN7A;^rcS|sYkvZoe2Iqk@7D>`C+r-{s)c)tt2o)!h$IZ$wk+V zxL4%2%4}}wpN1N3Oz4e`$M>rOp6N9t!79LIiR`D?W1*r4y$WX$3NkP32xU}dRLRyC zQBW5j<3gbXO53p|hX@tG((X)_VdcxVWqFIhU~0FcNYY4_o?V)j)5}DD?m)DUz*(p8 z4V~%o{)m*VoL~fT6&DJ6Y;U-XMv(Hr2W_~mE5GzqBzuNx3T-WKpYwVMxsjSAGuSq% zvE^g~E6G$eEp6Owh-sGt*lEG|@kOQ#{~|(-AmGFY8a`x3VCLChoAfvlouBf`U+3X= zubEAk5a?rgxJ*d`V{!L&n7#eZG@ zv^2cmjrjOD72dmP(_MkKIWz*%;#9Y}EovUs|E_{)^Vyuo&v>ur}Wn6-wSF)mkk;5ya5iYiiCY&^C`2TA5PNLqY%rc2SZi&w9GX&^psVYGY4z6 z{R@1&Z5cH@=ocOUa{3d;m%gde4OQSdybJTJ;=AXVdSmTE^IJp?@hwut#GB|L{a5K_Udvfiy{jONx8gXm2WUZJ%RC3%VsM1}23*A2BSg znSMJ8Xo2HTGAv~Z<0~t3!`UYVbM!FG<*Ev?H@ZC1Ld|=q(_wA*E)rO~t5z2y;lRf@ zDO15;w*e6ekF}Nh^Sa2!@SPt1xd(0sY*QKR3{guBo{y_Vn-%P$3+|J9^UOo;5Rprd z&FBt=UpU&LM#-Pv)BVmib@?K(!wF>K#0Nw&f+er&Lfn6>ersNHYMu7TUz2P7cX-ka z{d!0Spj^8P={o)YwgydP30QPI-}`^J3m@l0uzVet&Ceu0Vf?>Xz%QEbrH{_}?u`r} jA+vG^`B%EZk9%k~<4%=-7X2TeXkn$(h!1`LclCb&kRzoL literal 0 HcmV?d00001

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 V4+&(ruZRTs+0)g}Wt~$(6976^lgI!7 literal 0 HcmV?d00001 diff --git a/books_viewer/assets/images/lamp.png b/books_viewer/assets/images/lamp.png new file mode 100644 index 0000000000000000000000000000000000000000..b812cd99f2a96e377c06e65487fc64766bebe5e3 GIT binary patch literal 6266 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 g{eNnhh*4T= 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/books_viewer/ios/Runner/Base.lproj/Main.storyboard b/books_viewer/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/books_viewer/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/books_viewer/ios/Runner/Info.plist b/books_viewer/ios/Runner/Info.plist new file mode 100644 index 0000000..df14f83 --- /dev/null +++ b/books_viewer/ios/Runner/Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Books Viewer + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + MakerBook + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/books_viewer/ios/Runner/Runner-Bridging-Header.h b/books_viewer/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/books_viewer/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/books_viewer/ios/RunnerTests/RunnerTests.swift b/books_viewer/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/books_viewer/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/books_viewer/lib/main.dart b/books_viewer/lib/main.dart new file mode 100644 index 0000000..730f1bf --- /dev/null +++ b/books_viewer/lib/main.dart @@ -0,0 +1,26 @@ +// main.dart +import 'package:flutter/material.dart'; +import 'package:flutter_windowmanager/flutter_windowmanager.dart'; +import 'pages/home_page.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + FlutterWindowManager.addFlags(FlutterWindowManager.FLAG_SECURE); + return MaterialApp( + debugShowCheckedModeBanner: false, + title: 'Maker Book', + theme: ThemeData( + colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), + useMaterial3: true, + ), + home: const HomePage(), + ); + } +} diff --git a/books_viewer/lib/pages/about_page.dart b/books_viewer/lib/pages/about_page.dart new file mode 100644 index 0000000..2e28e4a --- /dev/null +++ b/books_viewer/lib/pages/about_page.dart @@ -0,0 +1,80 @@ +// pages/about_page.dart +import 'package:flutter/material.dart'; + +class AboutPage extends StatelessWidget { + const AboutPage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Sobre o App'), + centerTitle: true, + backgroundColor: Colors.cyanAccent, + foregroundColor: Colors.black, + ), + body: Container( + width: double.infinity, + padding: const EdgeInsets.all(24.0), + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/images/background.png'), + fit: BoxFit.cover, + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + 'Maker Book', + style: TextStyle( + fontSize: 28, + fontWeight: FontWeight.bold, + color: Colors.cyanAccent, + ), + ), + const SizedBox(height: 12), + const Text( + 'Aplicativo educacional desenvolvido pela Maker Robotics para visualização de livros e conteúdos digitais exclusivos.', + style: TextStyle(fontSize: 16, color: Colors.white), + ), + const SizedBox(height: 24), + const Row( + children: [ + Icon(Icons.verified, color: Colors.greenAccent), + SizedBox(width: 8), + Text( + 'Versão: 1.0.0', + style: TextStyle(fontSize: 16, color: Colors.white), + ), + ], + ), + const SizedBox(height: 16), + const Row( + children: [ + Icon(Icons.email, color: Colors.white), + SizedBox(width: 8), + Text( + 'Contato: makerroboticssistema@gmail.com', + style: TextStyle(fontSize: 16, color: Colors.white), + ), + ], + ), + const SizedBox(height: 32), + const Text( + 'Este aplicativo permite acesso seguro aos livros digitais adquiridos pela instituição ou aluno, com proteção contra captura de tela e login via QR Code.', + style: TextStyle(fontSize: 16, color: Colors.white), + ), + const Spacer(), + const Center( + child: Text( + '© 2025 Maker Robotics', + style: TextStyle(color: Colors.white70, fontSize: 14), + ), + ), + ], + ), + ), + ); + } +} diff --git a/books_viewer/lib/pages/epub_page.dart b/books_viewer/lib/pages/epub_page.dart new file mode 100644 index 0000000..1d5aed1 --- /dev/null +++ b/books_viewer/lib/pages/epub_page.dart @@ -0,0 +1,21 @@ +import 'package:MakerBook/widgets/epub_viewer2.dart'; +import 'package:flutter/material.dart'; +import '../widgets/epub_viewer.dart'; + +class EpubPage extends StatelessWidget { + final List epubBytes; + final String courseName; + final int book_id; + + const EpubPage({super.key, required this.courseName, required this.book_id, required this.epubBytes}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(courseName), + ), + body: EpubViewerPage(book_id: book_id), + ); + } +} \ No newline at end of file diff --git a/books_viewer/lib/pages/home_page.dart b/books_viewer/lib/pages/home_page.dart new file mode 100644 index 0000000..03369e3 --- /dev/null +++ b/books_viewer/lib/pages/home_page.dart @@ -0,0 +1,259 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:google_fonts/google_fonts.dart'; +import '../widgets/animated_button.dart'; +import 'login_page.dart'; +import 'about_page.dart'; +import 'privacy_page.dart'; + +class HomePage extends StatelessWidget { + const HomePage({super.key}); + + @override + Widget build(BuildContext context) { + final alturaTela = MediaQuery.of(context).size.height; + + return Scaffold( + body: Stack( + children: [ + // Fundo + Container( + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/images/background.png'), + fit: BoxFit.cover, + ), + ), + ), + + // Conteúdo scrollável + SafeArea( + child: Stack( + children: [ + SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: ConstrainedBox( + constraints: BoxConstraints(minHeight: alturaTela * 0.9), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox(height: 80), + + // Textos superiores + Text( + 'BEM-VINDO À BIBLIOTECA DIGITAL', + style: GoogleFonts.fredoka( + fontSize: 17, + fontWeight: FontWeight.bold, + color: Colors.orangeAccent, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: 50), + Text( + 'MAKER BOOK', + style: GoogleFonts.fredoka( + fontSize: 45, + color: Colors.deepOrangeAccent, + fontWeight: FontWeight.w900, + ), + ), + const SizedBox(height: 60), + + // Botão com mão + Stack( + clipBehavior: Clip.none, + alignment: Alignment.center, + children: [ + AnimatedButton( + onTap: () {}, + child: ElevatedButton( + onPressed: () async { + await Future.delayed(const Duration(milliseconds: 250)); + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const LoginPage()), + ); + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.orange, + padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(30), + ), + ), + child: Text( + 'ACESSAR LIVRO', + style: GoogleFonts.fredoka( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + Positioned( + right: -30, + bottom: -25, + child: const AnimatedHand(size: 50), + ), + ], + ), + + const SizedBox(height: 100), + ], + ), + ), + ), + ), + + // Botões no canto inferior esquerdo + Positioned( + left: 20, + bottom: 30, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _bottomButton( + icon: Icons.lock_outline, + text: 'POLÍTICA DE PRIVACIDADE', + color: Colors.green[200], + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => const PrivacyPage())); + }, + ), + const SizedBox(height: 10), + _bottomButton( + icon: Icons.info_outline, + text: 'SOBRE O APP', + color: Colors.blue[200], + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => const AboutPage())); + }, + ), + const SizedBox(height: 10), + _bottomButton( + icon: Icons.exit_to_app, + text: 'SAIR DO APLICATIVO', + color: Colors.pink[200], + onTap: () { + showDialog( + context: context, + builder: (_) => AlertDialog( + title: const Text('Confirmação'), + content: const Text('Deseja realmente sair do aplicativo?'), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: const Text('Cancelar'), + ), + TextButton( + onPressed: () => SystemNavigator.pop(), + child: const Text('Sair'), + ), + ], + ), + ); + }, + ), + ], + ), + ), + + // Mascote + Positioned( + right: -90, + bottom: 0, + child: Image.asset( + 'assets/images/robot.png', + width: 250, + ), + ), + ], + ), + ), + ], + ), + ); + } + + + Widget _bottomButton({required IconData icon, required String text, required Color? color, required VoidCallback onTap}) { + return SizedBox( + width: 240, // ✅ Largura fixa para padronizar + child: AnimatedButton( + onTap: onTap, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 10), + decoration: BoxDecoration( + color: color ?? Colors.white, + borderRadius: BorderRadius.circular(20), + ), + child: Row( + children: [ + Icon(icon, color: Colors.black), + const SizedBox(width: 8), + Expanded( + child: Text( + text, + style: GoogleFonts.fredoka( + fontSize: 14, + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), + ), + ], + ), + ), + ), + ); + } +} + +class AnimatedHand extends StatefulWidget { + final double size; + + const AnimatedHand({super.key, this.size = 50}); + + @override + State createState() => _AnimatedHandState(); +} + +class _AnimatedHandState extends State with SingleTickerProviderStateMixin { + late AnimationController _controller; + late Animation _animation; + + @override + void initState() { + super.initState(); + + _controller = AnimationController( + vsync: this, + duration: const Duration(milliseconds: 800), + )..repeat(reverse: true); // vai e volta + + _animation = Tween(begin: 0.9, end: 1.2).animate( + CurvedAnimation(parent: _controller, curve: Curves.easeInOut), + ); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return ScaleTransition( + scale: _animation, + child: Image.asset( + 'assets/images/hand.png', + width: widget.size, + height: widget.size, + ), + ); + } +} diff --git a/books_viewer/lib/pages/login_page.dart b/books_viewer/lib/pages/login_page.dart new file mode 100644 index 0000000..bbcb33f --- /dev/null +++ b/books_viewer/lib/pages/login_page.dart @@ -0,0 +1,359 @@ +// pages/login_page.dart +import 'dart:convert'; +import 'dart:io'; +import 'dart:typed_data'; +import 'package:audioplayers/audioplayers.dart'; +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:http/http.dart' as http; +import 'package:path_provider/path_provider.dart'; +import 'package:MakerBook/pages/epub_page.dart'; +import 'package:MakerBook/pages/qr_code_scanner.dart'; +import 'package:MakerBook/utils/encrypt.dart'; +import 'package:MakerBook/widgets/web_viewer.dart'; +import 'package:MakerBook/utils/global.dart'; +import '../widgets/animated_button.dart'; +import 'pdf_page.dart'; +import 'home_page.dart'; +import 'package:crypto/crypto.dart'; + +class LoginPage extends StatefulWidget { + const LoginPage({Key? key}) : super(key: key); + + @override + _LoginPageState createState() => _LoginPageState(); +} + +class _LoginPageState extends State { + final TextEditingController _codeController = TextEditingController(); + bool loading = false; + + Future _login() async { + if (loading) return; + + if (_codeController.text.isNotEmpty) { + setState(() => loading = true); + + final url = Uri.parse('$apiEndpoint/auth/loginBook'); + final response = await http.post( + url, + headers: {'Content-Type': 'application/json'}, + body: jsonEncode({'accesskey': _codeController.text}), + ); + + if (response.statusCode == 200) { + final data = jsonDecode(response.body)['results'][1][0]; + if (data['success'] == 1) { + final ext = data['ext']; + final book_id = data['courseId']; + final courseName = data['courseName']; + final modifiedAt = data['modifiedAt']; + + final directory = await getApplicationDocumentsDirectory(); + final file = File('${directory.path}/$book_id$ext'); + + await baixarOuAtualizarArquivo(book_id, bookPath, ext, modifiedAt); + + final player = AudioPlayer(); + await player.play(AssetSource('sounds/open_book.mp3')); + + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ext == ".pdf" + ? PdfPage(pdfBytes: file.readAsBytesSync(), courseName: courseName, book_id: book_id,) + : ext == ".epub" + ? EpubPage(epubBytes: [], book_id: book_id, courseName: courseName) + : ext == ".web" + ? WebViewer(book_id: book_id.toString()) + : const LoginPage(), + ), + ).then((_) async { + final directory = await getTemporaryDirectory(); + final tempFile = File('${directory.path}/${book_id}_temp$ext'); + if (await tempFile.exists()) { + await tempFile.delete(); + } + }); + } else { + _showSnackBar('Login falhou'); + } + } else { + _showSnackBar('Erro na requisição'); + } + } else { + _showSnackBar('Por favor, insira o código de acesso'); + } + + setState(() => loading = false); + } + + Future baixarOuAtualizarArquivo( + int bookId, + String bookPath, + String ext, + String? serverModifiedAtStr, + ) async { + final directory = await getApplicationDocumentsDirectory(); + final file = File('${directory.path}/$bookId$ext'); + final jsonFile = File('${directory.path}/$bookId.json'); + + print("[LOG] Diretorio Json: ${'${directory.path}/$bookId.json'}"); + + DateTime? serverModifiedAt = DateTime.tryParse(serverModifiedAtStr ?? ""); + + // Verifica se já existe o JSON com a modifiedAt local + if (await jsonFile.exists()) { + final jsonData = jsonDecode(await jsonFile.readAsString()); + final localModifiedAt = DateTime.tryParse(jsonData['modifiedAt'] ?? ''); + + if (serverModifiedAt != null && localModifiedAt != null) { + if (!serverModifiedAt.isAfter(localModifiedAt)) { + print("[LOG] Arquivo já está atualizado (por modifiedAt)."); + return; + } else { + print("[LOG] Arquivo modificado no servidor. Baixando..."); + } + } + } + + // Baixa o arquivo + final bookUrl = Uri.parse("$bookPath/course_$bookId$ext"); + final resBook = await http.get(bookUrl); + + if (resBook.statusCode != 200) { + _showSnackBar('[LOG] Falha ao carregar o livro'); + return; + } + + Uint8List conteudoProtegidoBytes; + + if (ext == ".epub") { + String protegido = await protectFile(resBook.bodyBytes, null); + conteudoProtegidoBytes = Uint8List.fromList(utf8.encode(protegido)); + } else { + conteudoProtegidoBytes = resBook.bodyBytes; + } + + bool arquivoMudou = true; + + // Compara com arquivo local, se existir + if (await file.exists()) { + final localBytes = await file.readAsBytes(); + final hashNovo = md5.convert(conteudoProtegidoBytes); + final hashLocal = md5.convert(localBytes); + + if (hashNovo == hashLocal) { + arquivoMudou = false; + print("[LOG] Hashs iguais. Nada a fazer."); + } else { + print("[LOG] Arquivo realmente mudou. Substituindo."); + } + } else { + print("[LOG] Arquivo ainda não existe. Salvando."); + } + + if (arquivoMudou) { + // Salva o arquivo EPUB + await file.writeAsBytes(conteudoProtegidoBytes); + } + + // Atualiza o JSON com nova modifiedAt, mantendo o lastLocation se já existir + Map newJson = { + "modifiedAt": serverModifiedAtStr, + "lastLocation": null, + }; + + if (await jsonFile.exists()) { + final conteudo = await jsonFile.readAsString(); + print("[LOG] Conteudo Json Original: ${conteudo}"); + final oldJson = jsonDecode(conteudo); + if (oldJson['lastLocation'] != null) { + newJson['lastLocation'] = oldJson['lastLocation']; + } + } + + await jsonFile.writeAsString(jsonEncode(newJson)); + + print("[LOG] Arquivo e JSON atualizados."); + } + + void _showSnackBar(String msg) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text(msg))); + } + + Future _scanQRCode() async { + if (!loading) { + final result = await Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const QRCodeScannerPage(), + ), + ); + + if (result != null) { + setState(() { + _codeController.text = result; + }); + } + } + } + + @override + Widget build(BuildContext context) { + final alturaTela = MediaQuery.of(context).size.height; + + return Scaffold( + body: Stack( + children: [ + // Fundo + Container( + decoration: const BoxDecoration( + image: DecorationImage( + image: AssetImage('assets/images/background.png'), + fit: BoxFit.cover, + ), + ), + ), + SafeArea( + child: Stack( + children: [ + // Conteúdo com rolagem e centralização + SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: ConstrainedBox( + constraints: BoxConstraints(minHeight: alturaTela * 0.9), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox(height: 40), + Image.asset('assets/images/icon.png', width: 160), + const SizedBox(height: 40), + + // Campo de código + Container( + width: 300, + padding: const EdgeInsets.symmetric(horizontal: 20), + decoration: BoxDecoration( + border: Border.all(color: Colors.lightBlueAccent, width: 2), + borderRadius: BorderRadius.circular(25), + color: Colors.white, + ), + child: TextField( + enabled: !loading, + controller: _codeController, + textAlign: TextAlign.center, + style: GoogleFonts.fredoka( + fontSize: 20, + fontWeight: FontWeight.bold, + ), + decoration: const InputDecoration( + hintText: 'DIGITE O CÓDIGO DO LIVRO', + border: InputBorder.none, + ), + ), + ), + + const SizedBox(height: 20), + + // Botão abrir livro com mãozinha + Stack( + clipBehavior: Clip.none, + alignment: Alignment.center, + children: [ + AnimatedButton( + onTap: loading ? () {} : _login, + child: ElevatedButton( + onPressed: _login, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.orange, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(25), + ), + padding: const EdgeInsets.symmetric(horizontal: 60, vertical: 16), + ), + child: Text( + loading ? 'ENTRANDO...' : 'ABRIR LIVRO', + style: GoogleFonts.fredoka( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + Positioned( + right: -30, + bottom: -25, + child: const AnimatedHand(size: 50), + ) + ], + ), + + const SizedBox(height: 40), + Text( + 'PREFERE USAR A CÂMERA?', + style: GoogleFonts.fredoka( + fontSize: 19, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + const SizedBox(height: 20), + + // Botão QR + AnimatedButton( + onTap: _scanQRCode, + child: ElevatedButton.icon( + onPressed: _scanQRCode, + icon: const Icon(Icons.qr_code, color: Colors.black), + label: Text( + 'ESCANEAR QR CODE', + style: GoogleFonts.fredoka( + fontSize: 15, + fontWeight: FontWeight.bold, + color: Colors.black, + ), + ), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(25), + side: const BorderSide(color: Colors.lightBlueAccent, width: 2), + ), + padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 14), + ), + ), + ), + + const SizedBox(height: 30), + if (loading) const CircularProgressIndicator(), + const SizedBox(height: 40), + ], + ), + ), + ), + ), + // 👉 Botão de voltar por cima + Positioned( + top: 10, + left: 10, + child: IconButton( + icon: const Icon(Icons.arrow_back, color: Colors.white), + onPressed: () { + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (_) => const HomePage()), + ); + }, + ), + ), + ], + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/books_viewer/lib/pages/pdf_page.dart b/books_viewer/lib/pages/pdf_page.dart new file mode 100644 index 0000000..15357fd --- /dev/null +++ b/books_viewer/lib/pages/pdf_page.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; +import '../widgets/pdf_viewer.dart'; + +class PdfPage extends StatelessWidget { + final List pdfBytes; + final String courseName; + final int book_id; + + const PdfPage({super.key, required this.courseName, required this.pdfBytes, required this.book_id}); + + @override + Widget build(BuildContext context) { + return PdfViewer(pdfBytes: pdfBytes, courseName: courseName, book_id: book_id,); + } +} \ No newline at end of file diff --git a/books_viewer/lib/pages/privacy_page.dart b/books_viewer/lib/pages/privacy_page.dart new file mode 100644 index 0000000..ddd98b7 --- /dev/null +++ b/books_viewer/lib/pages/privacy_page.dart @@ -0,0 +1,57 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:webview_flutter/webview_flutter.dart'; + +class PrivacyPage extends StatefulWidget { + const PrivacyPage({super.key}); + + @override + State createState() => _PrivacyPageState(); +} + +class _PrivacyPageState extends State { + bool _loading = true; + late WebViewController _controller; + + @override + void initState() { + super.initState(); + + // Necessário para Android quando usando WebView em SDKs antigos + if (Platform.isAndroid) { + WebView.platform = SurfaceAndroidWebView(); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Política de Privacidade'), + centerTitle: true, + backgroundColor: Colors.cyanAccent, + foregroundColor: Colors.black, + ), + body: Stack( + children: [ + WebView( + initialUrl: 'https://makereducacional.com.br/privacy.html', + javascriptMode: JavascriptMode.unrestricted, + onWebViewCreated: (controller) { + _controller = controller; + }, + onPageFinished: (_) { + setState(() { + _loading = false; + }); + }, + ), + if (_loading) + const Center( + child: CircularProgressIndicator(), + ), + ], + ), + ); + } +} diff --git a/books_viewer/lib/pages/qr_code_scanner.dart b/books_viewer/lib/pages/qr_code_scanner.dart new file mode 100644 index 0000000..4895fae --- /dev/null +++ b/books_viewer/lib/pages/qr_code_scanner.dart @@ -0,0 +1,92 @@ +import 'package:flutter/material.dart'; +import 'package:qr_code_scanner/qr_code_scanner.dart'; + +class QRCodeScannerPage extends StatefulWidget { + const QRCodeScannerPage({Key? key}) : super(key: key); + + @override + _QRCodeScannerPageState createState() => _QRCodeScannerPageState(); +} + +class _QRCodeScannerPageState extends State { + final GlobalKey qrKey = GlobalKey(debugLabel: 'QR'); + QRViewController? controller; + + bool lido = false; + + @override + void dispose() { + controller?.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('Leia o QR Code')), + body: Stack( + children: [ + // Câmera + QRView( + key: qrKey, + onQRViewCreated: _onQRViewCreated, + ), + + // Escurecimento com buraco no centro + Positioned.fill( + child: ScannerOverlay(), + ), + ], + ), + ); + } + + + + void _onQRViewCreated(QRViewController controller) { + print("[LOG] QRCode criado"); + this.controller = controller; + controller.scannedDataStream.listen((scanData) { + if (!lido) { + lido = true; + print("[LOG] Leitura QRCode: ${scanData.code}"); + Navigator.pop(context, scanData.code); // Retorna o código escaneado + } + }); + } +} + +class ScannerOverlay extends StatelessWidget { + @override + Widget build(BuildContext context) { + return LayoutBuilder(builder: (context, constraints) { + final width = constraints.maxWidth; + final height = constraints.maxHeight; + final scanAreaSize = width * 0.6; + final left = (width - scanAreaSize) / 2; + final top = (height - scanAreaSize) / 2; + + return Stack( + children: [ + // Camada escura semi-transparente + Container(color: Colors.black.withOpacity(0.5)), + + // Janela recortada no centro + Positioned( + left: left, + top: top, + width: scanAreaSize, + height: scanAreaSize, + child: Container( + decoration: BoxDecoration( + color: Colors.transparent, + border: Border.all(color: Colors.white, width: 2), + borderRadius: BorderRadius.circular(16), + ), + ), + ), + ], + ); + }); + } +} \ No newline at end of file diff --git a/books_viewer/lib/utils/encrypt.dart b/books_viewer/lib/utils/encrypt.dart new file mode 100644 index 0000000..687d722 --- /dev/null +++ b/books_viewer/lib/utils/encrypt.dart @@ -0,0 +1,24 @@ +import 'dart:convert'; + +const String startHash = "START_HASH_123"; +const String endHash = "END_HASH_123"; + +// Protege o arquivo adicionando hashes, convertendo os bytes para Base64, e salvando o lastLocation +Future protectFile(List bytes, String? lastLocation) async { + final epubBytes = bytes; // Aguarda a leitura do arquivo + String base64Content = base64Encode(epubBytes); // Converte para Base64 + String location = lastLocation ?? 'null'; // Se o lastLocation for nulo, salva como 'null' + return '$startHash$base64Content$endHash$location'; // Adiciona o lastLocation após o conteúdo +} + +// Remove as hashes e converte de volta para os bytes originais, também recupera o lastLocation +Map unprotectFile(String protectedContent) { + if (protectedContent.startsWith(startHash) && protectedContent.contains(endHash)) { + String base64Content = protectedContent.split(endHash)[0].replaceFirst(startHash, ''); + String lastLocation = protectedContent.split(endHash)[1]; // Extrai o lastLocation + List epubBytes = base64Decode(base64Content); + return {'epubBytes': epubBytes, 'lastLocation': lastLocation != 'null' ? lastLocation : null}; + } else { + throw Exception('Arquivo corrompido ou inválido'); + } +} \ No newline at end of file diff --git a/books_viewer/lib/utils/global.dart b/books_viewer/lib/utils/global.dart new file mode 100644 index 0000000..751bfd1 --- /dev/null +++ b/books_viewer/lib/utils/global.dart @@ -0,0 +1,36 @@ +library makerbook.utils.global; + +import 'dart:convert'; +import 'dart:io'; + +import 'package:path_provider/path_provider.dart'; + +// Variáveis globais +String apiEndpoint = "http://54.94.231.207:3035/api"; +String bookPath = "http://54.94.231.207/maker_book/materials/"; +String epub_Key = "d8df841b92a6cbedbb26f3d06dbde1c9"; + +Future getLastLocation(int book_id) async { + String? lastLocation = null; + final directoryReal = await getApplicationDocumentsDirectory(); + print("[LOG] Diretorio Json: ${'${directoryReal.path}/${book_id}.json'}"); + final jsonFile = File('${directoryReal.path}/${book_id}.json'); + if (await jsonFile.exists()) { + final jsonData = jsonDecode(await jsonFile.readAsString()); + lastLocation = jsonData['lastLocation']; + print("[LOG] Last Location: ${lastLocation}"); + } + return lastLocation; +} + +Future saveLastLocation(int book_id, String? lastLocation) async { + if (lastLocation == null) return; + final directory = await getApplicationDocumentsDirectory(); + final file = File('${directory.path}/${book_id}.json'); + Map data = {}; + if (await file.exists()) { + data = jsonDecode(await file.readAsString()); + } + data['lastLocation'] = lastLocation; + await file.writeAsString(jsonEncode(data)); +} diff --git a/books_viewer/lib/widgets/animated_button.dart b/books_viewer/lib/widgets/animated_button.dart new file mode 100644 index 0000000..cbb989e --- /dev/null +++ b/books_viewer/lib/widgets/animated_button.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; + +class AnimatedButton extends StatefulWidget { + final Widget child; + final VoidCallback onTap; + + const AnimatedButton({super.key, required this.child, required this.onTap}); + + @override + State createState() => _AnimatedButtonState(); +} + +class _AnimatedButtonState extends State + with SingleTickerProviderStateMixin { + double _scale = 1.0; + + void _onTapDown(TapDownDetails _) { + setState(() => _scale = 0.95); + } + + void _onTapUp(TapUpDetails _) async { + setState(() => _scale = 1.0); + await Future.delayed(const Duration(milliseconds: 250)); + widget.onTap(); + } + + void _onTapCancel() { + setState(() => _scale = 1.0); + } + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTapDown: _onTapDown, + onTapUp: _onTapUp, + onTapCancel: _onTapCancel, + child: AnimatedScale( + scale: _scale, + duration: const Duration(milliseconds: 120), + curve: Curves.easeOut, + child: widget.child, + ), + ); + } +} diff --git a/books_viewer/lib/widgets/epub_viewer.dart b/books_viewer/lib/widgets/epub_viewer.dart new file mode 100644 index 0000000..4a5203e --- /dev/null +++ b/books_viewer/lib/widgets/epub_viewer.dart @@ -0,0 +1,109 @@ +import 'dart:convert'; +import 'dart:io'; +import 'dart:typed_data'; + +import 'package:MakerBook/utils/encrypt.dart'; +import 'package:MakerBook/utils/global.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:vocsy_epub_viewer/epub_viewer.dart'; + +class EpubViewerPage extends StatefulWidget { + final int book_id; + + const EpubViewerPage({super.key, required this.book_id}); + + @override + _EpubViewerPageState createState() => _EpubViewerPageState(); +} + +class _EpubViewerPageState extends State { + + String? lastLocation; + + @override + void initState() { + super.initState(); + _prepareTempEpub(); + + // Registra um listener para capturar o lastLocation quando o leitor informar + VocsyEpub.locatorStream.listen((locator) async { + print('Localização atual: $locator'); + // Armazena o locator como um Map em vez de string diretamente + lastLocation = locator; + + await saveLastLocation(widget.book_id, lastLocation); + Navigator.pop(context); + }); + + //openLocalEpub(); + } + + Future openLocalEpub() async { + final tempDir = await getTemporaryDirectory(); + final path = '${tempDir.path}/test.epub'; + + final data = await rootBundle.load('assets/sample.epub'); + final file = File(path); + await file.writeAsBytes(data.buffer.asUint8List()); + + // Config obrigatória + VocsyEpub.setConfig( + themeColor: Colors.blue, + identifier: 'test-book', + scrollDirection: EpubScrollDirection.VERTICAL, + allowSharing: false, + enableTts: false, + ); + + VocsyEpub.open(path); + } + + @override + void dispose() { + super.dispose(); + } + + // Prepara o arquivo temporário para o leitor EPUB + Future _prepareTempEpub() async { + final directoryReal = await getApplicationDocumentsDirectory(); + final file = File('${directoryReal.path}/${widget.book_id}.epub'); + + final directory = await getTemporaryDirectory(); + final tempFile = File('${directory.path}/${widget.book_id}_temp.epub'); + + // Lê o conteúdo protegido e remove a proteção + String protectedContent = await file.readAsString(); + Map fileData = unprotectFile(protectedContent); + List unprotectedBytes = fileData['epubBytes']; + + // Salva o arquivo descriptografado no diretório temporário + await tempFile.writeAsBytes(unprotectedBytes); + + lastLocation = await getLastLocation(widget.book_id); + + // Configuração do leitor + VocsyEpub.setConfig( + themeColor: Theme.of(context).primaryColor, + identifier: widget.book_id.toString(), + scrollDirection: EpubScrollDirection.ALLDIRECTIONS, + allowSharing: false, + enableTts: false, + ); + + // Abrindo o arquivo EPUB e usando o lastLocation se estiver disponível + VocsyEpub.open( + tempFile.path, + lastLocation: lastLocation != null ? EpubLocator.fromJson(jsonDecode(lastLocation!)) : null, + ); + } + + + + @override + Widget build(BuildContext context) { + return const Center(child: CircularProgressIndicator()); + } + +} \ No newline at end of file diff --git a/books_viewer/lib/widgets/epub_viewer2.dart b/books_viewer/lib/widgets/epub_viewer2.dart new file mode 100644 index 0000000..a5bd6cb --- /dev/null +++ b/books_viewer/lib/widgets/epub_viewer2.dart @@ -0,0 +1,121 @@ +import 'dart:convert'; +import 'dart:io'; + +import 'package:MakerBook/utils/encrypt.dart'; +import 'package:epub_view/epub_view.dart'; +import 'package:flutter/material.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:vocsy_epub_viewer/epub_viewer.dart'; + +class EpubViewer2Page extends StatefulWidget { + final int book_id; + + const EpubViewer2Page({super.key, required this.book_id}); + + @override + _EpubViewer2PageState createState() => _EpubViewer2PageState(); +} + +class _EpubViewer2PageState extends State { + + String? lastLocation; + String? epubPath; + + @override + void initState() { + super.initState(); + _prepareTempEpub(); + + //_initializeEpubController(); + + // Registra um listener para capturar o lastLocation quando o leitor informar + VocsyEpub.locatorStream.listen((locator) async { + print('Localização atual: $locator'); + // Armazena o locator como um Map em vez de string diretamente + lastLocation = locator; + + await _saveLastLocation(); + }); + } + + @override + void dispose() { + super.dispose(); + } + + // Função para salvar a última posição de leitura + Future _saveLastLocation() async { + if (lastLocation == null) return; + + final directory = await getApplicationDocumentsDirectory(); + final file = File('${directory.path}/${widget.book_id}.epub'); + + // Recarrega o conteúdo protegido atual, atualiza o lastLocation, e salva novamente + String protectedContent = await file.readAsString(); + Map fileData = unprotectFile(protectedContent); + String updatedProtectedContent = await protectFile(fileData['epubBytes'], lastLocation!); + await file.writeAsString(updatedProtectedContent); + + Navigator.pop(context); + } + + // Prepara o arquivo temporário para o leitor EPUB + Future _prepareTempEpub_bkp() async { + final directoryReal = await getApplicationDocumentsDirectory(); + final file = File('${directoryReal.path}/${widget.book_id}.epub'); + + final directory = await getTemporaryDirectory(); + final tempFile = File('${directory.path}/${widget.book_id}_temp.epub'); + + // Lê o conteúdo protegido e remove a proteção + String protectedContent = await file.readAsString(); + Map fileData = unprotectFile(protectedContent); + List unprotectedBytes = fileData['epubBytes']; + lastLocation = fileData['lastLocation']; // Recupera o lastLocation + + // Salva o arquivo descriptografado no diretório temporário + await tempFile.writeAsBytes(unprotectedBytes); + + // Configuração do leitor + VocsyEpub.setConfig( + themeColor: Theme.of(context).primaryColor, + identifier: widget.book_id.toString(), + scrollDirection: EpubScrollDirection.ALLDIRECTIONS, + allowSharing: false, + enableTts: false, + ); + + // Abrindo o arquivo EPUB e usando o lastLocation se estiver disponível + VocsyEpub.open( + tempFile.path, + lastLocation: lastLocation != null ? EpubLocator.fromJson(jsonDecode(lastLocation!)) : null, + ); + } + + // Prepara o arquivo temporário para o leitor EPUB + Future _prepareTempEpub() async { + final directoryReal = await getApplicationDocumentsDirectory(); + final file = File('${directoryReal.path}/${widget.book_id}.epub'); + + // Configuração do leitor + VocsyEpub.setConfig( + themeColor: Theme.of(context).primaryColor, + identifier: widget.book_id.toString(), + scrollDirection: EpubScrollDirection.ALLDIRECTIONS, + allowSharing: false, + enableTts: false, + ); + + // Abrindo o arquivo EPUB e usando o lastLocation se estiver disponível + VocsyEpub.open( + file.path, + lastLocation: lastLocation != null ? EpubLocator.fromJson(jsonDecode(lastLocation!)) : null, + ); + } + + @override + Widget build(BuildContext context) { + return const Center(child: CircularProgressIndicator()); + } + +} \ No newline at end of file diff --git a/books_viewer/lib/widgets/pdf_viewer.dart b/books_viewer/lib/widgets/pdf_viewer.dart new file mode 100644 index 0000000..a679c1f --- /dev/null +++ b/books_viewer/lib/widgets/pdf_viewer.dart @@ -0,0 +1,600 @@ +// widgets/pdf_viewer.dart +import 'dart:convert'; + +import 'package:MakerBook/utils/global.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_pdfview/flutter_pdfview.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'dart:io'; + +import 'package:tutorial_coach_mark/tutorial_coach_mark.dart'; + +class PdfViewer extends StatefulWidget { + final List pdfBytes; + final String courseName; + final int book_id; + + const PdfViewer({super.key, required this.pdfBytes, required this.courseName, required this.book_id}); + + @override + _PdfViewerState createState() => _PdfViewerState(); +} + +class _PdfViewerState extends State { + String? localPath; + PDFViewController? _controller; + int _totalPages = 0; + int _currentPage = 0; + String _courseName = ""; + bool setaTutorial = false; + bool _mostrarControles = true; + + @override + void initState() { + super.initState(); + _loadPdf(); + _verificaSeMostraTutorial(); + } + + @override + void dispose() { + _saveLastPage(); + super.dispose(); + } + + + Future _loadPdf() async { + final tempDir = await getTemporaryDirectory(); + final tempFile = File('${tempDir.path}/temp.pdf'); + await tempFile.writeAsBytes(widget.pdfBytes, flush: true); + + setState(() { + localPath = tempFile.path; + _courseName = widget.courseName; + }); + } + + Future _saveLastPage() async { + try { + int page = await _controller!.getCurrentPage() ?? 1; + await saveLastLocation(widget.book_id, page.toString()); + } + catch (ex) { + print("Erro ao salvar lastLocation no PDF"); + } + } + + void _goToPage(int page) { + if (_controller != null && page >= 0 && page < _totalPages) { + _controller!.setPage(page); + print("[LOG] Página do PDF definida para ${page}"); + } + } + + void _showPageInputDialog() { + final TextEditingController _pageController = TextEditingController(); + + showDialog( + context: context, + barrierDismissible: false, // Para manter o foco + builder: (context) { + return Dialog( + backgroundColor: const Color(0xFFFDF6E4), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + child: SizedBox( + width: 300, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Título com lupa + Stack( + children: [ + Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 16), + decoration: const BoxDecoration( + color: Color(0xFF84D1F0), + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + child: Center( + child: Text( + 'PESQUISA DETALHADA!', + style: GoogleFonts.fredoka( + fontSize: 17, + fontWeight: FontWeight.bold, + color: Colors.black + ), + ), + ), + ), + Positioned( + top: 0, + right: 0, + child: Image.asset( + 'assets/images/zoom.png', + width: 50, + height: 50, + ), + ), + ], + ), + + const SizedBox(height: 24), + + // Campo de texto + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24), + child: TextField( + controller: _pageController, + keyboardType: TextInputType.number, + textAlign: TextAlign.center, + style: GoogleFonts.fredoka( + fontSize: 17, + fontWeight: FontWeight.bold, + ), + decoration: InputDecoration( + hintText: 'NÚMERO DA PÁGINA', + hintStyle: GoogleFonts.fredoka( + fontSize: 17, + fontWeight: FontWeight.bold, + ), + contentPadding: const EdgeInsets.symmetric(vertical: 12, horizontal: 8), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(25), + borderSide: const BorderSide(color: Colors.lightBlueAccent, width: 2), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(25), + borderSide: const BorderSide(color: Colors.blue, width: 2), + ), + ), + ), + ), + + const SizedBox(height: 24), + + // Botões + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0, vertical: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + // Botão cancelar + ElevatedButton( + onPressed: () => Navigator.pop(context), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFFFFB1B1), + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + ), + child: Text( + 'CANCELAR', + style: GoogleFonts.fredoka( + fontSize: 15, + fontWeight: FontWeight.bold, + color: Colors.black + ), + ), + ), + // Botão pesquisar + ElevatedButton( + onPressed: () { + final int? page = int.tryParse(_pageController.text); + if (page != null && page > 0 && page <= _totalPages) { + _goToPage(page - 1); + } + Navigator.pop(context); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF94A38F), + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + ), + child: Text( + 'PESQUISAR', + style: GoogleFonts.fredoka( + fontSize: 15, + fontWeight: FontWeight.bold, + color: Colors.black + ), + ), + ), + ], + ), + ) + ], + ), + ), + ); + }, + ); + } + + void _showAnnotationDialog() async { + final TextEditingController _noteController = TextEditingController(); + final directory = await getApplicationDocumentsDirectory(); + final file = File('${directory.path}/${widget.book_id}.json'); + Map data = {}; + int currentPage = _currentPage + 1; + + // Carregar anotação atual + if (await file.exists()) { + data = jsonDecode(await file.readAsString()); + final notes = data['notes'] ?? {}; + if (notes.containsKey('$currentPage')) { + _noteController.text = notes['$currentPage']; + } + } + + int numLinhas = 5; + double alturaLinha = 24; + + showDialog( + context: context, + builder: (context) { + return Dialog( + backgroundColor: const Color(0xFFFDF6E4), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(20)), + child: SizedBox( + width: 300, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Header + Stack( + children: [ + Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 16), + decoration: const BoxDecoration( + color: Color(0xFFF79C5E), + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + child: Center( + child: Text( + 'ÁREA DE ANOTAÇÕES', + style: GoogleFonts.fredoka( + fontSize: 18, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + Positioned( + top: -8, + right: -8, + child: Image.asset( + 'assets/images/lamp.png', + width: 70, + height: 70, + ), + ), + ], + ), + + const SizedBox(height: 16), + + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Stack( + children: [ + // Fundo com linhas estilo caderno + CustomPaint( + size: Size(double.infinity, numLinhas * alturaLinha), // 5 * 35 linhas + painter: CadernoPainter(lineCount: numLinhas, lineHeight: alturaLinha), + ), + // Campo de texto por cima + TextField( + controller: _noteController, + keyboardType: TextInputType.multiline, + maxLines: numLinhas, + textAlign: TextAlign.center, + style: GoogleFonts.fredoka( + fontSize: 15, + fontWeight: FontWeight.bold, + ), + decoration: const InputDecoration( + hintText: 'REGISTRE AQUI SUAS IDEIAS!', + hintStyle: TextStyle(fontWeight: FontWeight.bold), + border: InputBorder.none, + ), + ), + ], + ), + ), + + + const SizedBox(height: 10), + + // Botões + Padding( + padding: const EdgeInsets.symmetric(horizontal: 24.0, vertical: 16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + ElevatedButton( + onPressed: () => Navigator.pop(context), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFFFFB1B1), + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + ), + child: Text( + 'FECHAR', + style: GoogleFonts.fredoka( + fontSize: 14, + fontWeight: FontWeight.bold, + ), + ), + ), + ElevatedButton( + onPressed: () async { + data['notes'] ??= {}; + data['notes']['$currentPage'] = _noteController.text; + await file.writeAsString(jsonEncode(data)); + Navigator.pop(context); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF94A38F), + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + ), + child: Text( + 'SALVAR', + style: GoogleFonts.fredoka( + fontSize: 14, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ); + } + + + + + List targets = []; + GlobalKey lupaKey = GlobalKey(); + GlobalKey anotacaoKey = GlobalKey(); + GlobalKey rolagemKey = GlobalKey(); + + void _verificaSeMostraTutorial() async { + final prefs = await SharedPreferences.getInstance(); + bool jaViu = prefs.getBool('tutorialPdfVisto') ?? false; + + setState(() { + setaTutorial = !jaViu; + }); + + if (!jaViu) { + WidgetsBinding.instance.addPostFrameCallback((_) { + _mostrarTutorial(); + }); + prefs.setBool('tutorialPdfVisto', true); + } + } + + void _mostrarTutorial() { + final targets = [ + // Passo anotacao (sem alterações) + TargetFocus( + identify: "lupa", + keyTarget: lupaKey, + contents: [ + TargetContent( + align: ContentAlign.bottom, + child: const Text( + "Use a lupa para realizar uma pesquisa detalhada!", + style: TextStyle(color: Colors.white, fontSize: 18), + ), + ), + ], + ), + + // Passo anotacao (sem alterações) + TargetFocus( + identify: "anotacao", + keyTarget: anotacaoKey, + contents: [ + TargetContent( + align: ContentAlign.bottom, + child: const Text( + "Registre as suas anotações aqui!", + style: TextStyle(color: Colors.white, fontSize: 18), + ), + ), + ], + ), + + // Passo rolagem + TargetFocus( + identify: "rolagem", + keyTarget: rolagemKey, + contents: [ + TargetContent( + align: ContentAlign.bottom, + child: const Text( + "Para visualizar o conteúdo, role a página!", + style: TextStyle(color: Colors.white, fontSize: 18), + ), + ), + ], + ), + ]; + + + + TutorialCoachMark( + targets: targets, + colorShadow: Colors.black, + textSkip: "Pular", + paddingFocus: 10, + opacityShadow: 0.8, + onFinish: () { + print("Tutorial concluído!"); + setState(() { + setaTutorial = false; + }); + }, + ).show( + context: context + ); + + } + + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: _mostrarControles + ? AppBar( + backgroundColor: Colors.blueAccent, + foregroundColor: Colors.black, + title: Text(_courseName), + actions: [ + IconButton( + key: lupaKey, + icon: const Icon(Icons.find_in_page), + tooltip: 'Ir para página', + onPressed: _totalPages > 0 ? _showPageInputDialog : null, + ), + IconButton( + key: anotacaoKey, + icon: const Icon(Icons.lightbulb_outline), + tooltip: 'Anotações', + onPressed: _showAnnotationDialog, + ), + ], + ) + : PreferredSize(preferredSize: Size.zero, child: SizedBox.shrink()), + body: localPath == null + ? const Center(child: CircularProgressIndicator()) + : setaTutorial + ? Center( + child: Image.asset( + key: rolagemKey, + 'assets/images/seta.png', + width: 80, + height: 80, + ), + ) + : GestureDetector( + onTap: () { + setState(() { + _mostrarControles = !_mostrarControles; + }); + }, + child: Stack( + children: [ + PDFView( + filePath: localPath!, + onRender: (_pages) { + setState(() { + _totalPages = _pages ?? 0; + }); + }, + onViewCreated: (controller) async { + _controller = controller; + await Future.delayed(const Duration(milliseconds: 500)); + _currentPage = int.parse(await getLastLocation(widget.book_id) ?? "1"); + _goToPage(_currentPage); + }, + onPageChanged: (page, total) { + setState(() { + _currentPage = page ?? 0; + }); + }, + ), + + // 🔸 Detector de toque invisível cobrindo tudo + Positioned.fill( + child: GestureDetector( + behavior: HitTestBehavior.translucent, + onTap: () { + setState(() { + _mostrarControles = !_mostrarControles; + }); + }, + ), + ), + + // 🔸 Controles inferiores (visíveis só se ativo) + if (_mostrarControles) + Positioned( + bottom: 16, + left: 16, + right: 16, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10), + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.6), + borderRadius: BorderRadius.circular(16), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + IconButton( + icon: const Icon(Icons.chevron_left, color: Colors.white), + onPressed: _currentPage > 0 ? () => _goToPage(_currentPage - 1) : null, + ), + Text( + 'Página ${_currentPage + 1} de $_totalPages', + style: const TextStyle(color: Colors.white), + ), + IconButton( + icon: const Icon(Icons.chevron_right, color: Colors.white), + onPressed: _currentPage < _totalPages - 1 ? () => _goToPage(_currentPage + 1) : null, + ), + ], + ), + ), + ), + ], + ) + ), + ); + + } +} + +class CadernoPainter extends CustomPainter { + final int lineCount; + final double lineHeight; + + CadernoPainter({this.lineCount = 6, this.lineHeight = 45}); + + @override + void paint(Canvas canvas, Size size) { + final paint = Paint() + ..color = Colors.black26 + ..strokeWidth = 1; + + for (int i = 1; i <= lineCount; i++) { + final y = i * lineHeight; + canvas.drawLine(Offset(0, y), Offset(size.width, y), paint); + } + } + + @override + bool shouldRepaint(CustomPainter oldDelegate) => false; +} diff --git a/books_viewer/lib/widgets/web_viewer.dart b/books_viewer/lib/widgets/web_viewer.dart new file mode 100644 index 0000000..06753d5 --- /dev/null +++ b/books_viewer/lib/widgets/web_viewer.dart @@ -0,0 +1,60 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:webview_flutter/webview_flutter.dart'; + +class WebViewer extends StatefulWidget { + final String book_id; + + const WebViewer({super.key, required this.book_id}); + + @override + _WebViewerState createState() => _WebViewerState(); +} + +class _WebViewerState extends State { + late WebViewController _controller; + bool _loading = true; + + final String baseUrl = "http://192.168.99.115:8080/#fmt=EPUB&mode=read_book&book_id="; + + @override + void initState() { + super.initState(); + + if (Platform.isAndroid) { + WebView.platform = SurfaceAndroidWebView(); + } + } + + @override + Widget build(BuildContext context) { + final fullUrl = baseUrl + widget.book_id; + + return Scaffold( + appBar: AppBar( + title: const Text("Leitor Online"), + backgroundColor: Colors.cyanAccent, + foregroundColor: Colors.black, + ), + body: Stack( + children: [ + WebView( + initialUrl: fullUrl, + javascriptMode: JavascriptMode.unrestricted, + userAgent: "Mozilla/5.0 (Mobile; Flutter)", + onWebViewCreated: (controller) { + _controller = controller; + }, + onPageFinished: (_) { + setState(() { + _loading = false; + }); + }, + ), + if (_loading) + const Center(child: CircularProgressIndicator()), + ], + ), + ); + } +} diff --git a/books_viewer/linux/.gitignore b/books_viewer/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/books_viewer/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/books_viewer/linux/CMakeLists.txt b/books_viewer/linux/CMakeLists.txt new file mode 100644 index 0000000..53f8987 --- /dev/null +++ b/books_viewer/linux/CMakeLists.txt @@ -0,0 +1,145 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "MakerBook") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.myrobot.MakerBook") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/books_viewer/linux/flutter/CMakeLists.txt b/books_viewer/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/books_viewer/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/books_viewer/linux/flutter/generated_plugin_registrant.cc b/books_viewer/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..1830e5c --- /dev/null +++ b/books_viewer/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) audioplayers_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "AudioplayersLinuxPlugin"); + audioplayers_linux_plugin_register_with_registrar(audioplayers_linux_registrar); +} diff --git a/books_viewer/linux/flutter/generated_plugin_registrant.h b/books_viewer/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/books_viewer/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/books_viewer/linux/flutter/generated_plugins.cmake b/books_viewer/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..e9abb91 --- /dev/null +++ b/books_viewer/linux/flutter/generated_plugins.cmake @@ -0,0 +1,24 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + audioplayers_linux +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/books_viewer/linux/main.cc b/books_viewer/linux/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/books_viewer/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/books_viewer/linux/my_application.cc b/books_viewer/linux/my_application.cc new file mode 100644 index 0000000..83963e5 --- /dev/null +++ b/books_viewer/linux/my_application.cc @@ -0,0 +1,124 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "MakerBook + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "MakerBook"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GApplication::startup. +static void my_application_startup(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application startup. + + G_APPLICATION_CLASS(my_application_parent_class)->startup(application); +} + +// Implements GApplication::shutdown. +static void my_application_shutdown(GApplication* application) { + //MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application shutdown. + + G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_APPLICATION_CLASS(klass)->startup = my_application_startup; + G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/books_viewer/linux/my_application.h b/books_viewer/linux/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/books_viewer/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/books_viewer/macos/.gitignore b/books_viewer/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/books_viewer/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/books_viewer/macos/Flutter/Flutter-Debug.xcconfig b/books_viewer/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/books_viewer/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/books_viewer/macos/Flutter/Flutter-Release.xcconfig b/books_viewer/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/books_viewer/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/books_viewer/macos/Flutter/GeneratedPluginRegistrant.swift b/books_viewer/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..3165782 --- /dev/null +++ b/books_viewer/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,16 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import audioplayers_darwin +import path_provider_foundation +import shared_preferences_foundation + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin")) + PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) +} diff --git a/books_viewer/macos/Runner.xcodeproj/project.pbxproj b/books_viewer/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..506ac2e --- /dev/null +++ b/books_viewer/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,705 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* MakerBook.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "MakerBook.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* MakerBook.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* MakerBook.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.booksViewer.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MakerBook.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MakerBook"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.booksViewer.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MakerBook.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MakerBook"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.booksViewer.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MakerBook.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MakerBook"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.14; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/books_viewer/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/books_viewer/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/books_viewer/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/books_viewer/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/books_viewer/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..0f85d87 --- /dev/null +++ b/books_viewer/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/books_viewer/macos/Runner.xcworkspace/contents.xcworkspacedata b/books_viewer/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/books_viewer/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/books_viewer/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/books_viewer/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/books_viewer/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/books_viewer/macos/Runner/AppDelegate.swift b/books_viewer/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..d53ef64 --- /dev/null +++ b/books_viewer/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..82b6f9d9a33e198f5747104729e1fcef999772a5 GIT binary patch literal 102994 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ⅅ8MglG&ER{i5lN315cO?EdHNLrg? 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 z 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 Pe7HEdAEg|=c=LY&YVNkY literal 0 HcmV?d00001 diff --git a/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..13b35eba55c6dabc3aac36f33d859266c18fa0d0 GIT binary patch literal 5680 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 literal 0 HcmV?d00001 diff --git a/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3f5fa40fb3d1e0710331a48de5d256da3f275d GIT binary patch literal 520 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 literal 0 HcmV?d00001 diff --git a/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/books_viewer/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1632cfddf3d9dade342351e627a0a75609fb46 GIT binary patch literal 2218 zcmV;b2vzrqP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAuE6iGxuRCodHTWf3-RTMruyW6Fu zQYeUM04eX6D5c0FCjKKPrco1(K`<0SL=crI{PC3-^hZU0kQie$gh-5!7z6SH6Q0J% zqot*`H1q{R5fHFYS}dje@;kG=v$L0(yY0?wY2%*c?A&{2?!D*x?m71{of2gv!$5|C z3>qG_BW}7K_yUcT3A5C6QD<+{aq?x;MAUyAiJn#Jv8_zZtQ{P zTRzbL3U9!qVuZzS$xKU10KiW~Bgdcv1-!uAhQxf3a7q+dU6lj?yoO4Lq4TUN4}h{N z*fIM=SS8|C2$(T>w$`t@3Tka!(r!7W`x z-isCVgQD^mG-MJ;XtJuK3V{Vy72GQ83KRWsHU?e*wrhKk=ApIYeDqLi;JI1e zuvv}5^Dc=k7F7?nm3nIw$NVmU-+R>> zyqOR$-2SDpJ}Pt;^RkJytDVXNTsu|mI1`~G7yw`EJR?VkGfNdqK9^^8P`JdtTV&tX4CNcV4 z&N06nZa??Fw1AgQOUSE2AmPE@WO(Fvo`%m`cDgiv(fAeRA%3AGXUbsGw{7Q`cY;1BI#ac3iN$$Hw z0LT0;xc%=q)me?Y*$xI@GRAw?+}>=9D+KTk??-HJ4=A>`V&vKFS75@MKdSF1JTq{S zc1!^8?YA|t+uKigaq!sT;Z!&0F2=k7F0PIU;F$leJLaw2UI6FL^w}OG&!;+b%ya1c z1n+6-inU<0VM-Y_s5iTElq)ThyF?StVcebpGI znw#+zLx2@ah{$_2jn+@}(zJZ{+}_N9BM;z)0yr|gF-4=Iyu@hI*Lk=-A8f#bAzc9f z`Kd6K--x@t04swJVC3JK1cHY-Hq+=|PN-VO;?^_C#;coU6TDP7Bt`;{JTG;!+jj(` zw5cLQ-(Cz-Tlb`A^w7|R56Ce;Wmr0)$KWOUZ6ai0PhzPeHwdl0H(etP zUV`va_i0s-4#DkNM8lUlqI7>YQLf)(lz9Q3Uw`)nc(z3{m5ZE77Ul$V%m)E}3&8L0 z-XaU|eB~Is08eORPk;=<>!1w)Kf}FOVS2l&9~A+@R#koFJ$Czd%Y(ENTV&A~U(IPI z;UY+gf+&6ioZ=roly<0Yst8ck>(M=S?B-ys3mLdM&)ex!hbt+ol|T6CTS+Sc0jv(& z7ijdvFwBq;0a{%3GGwkDKTeG`b+lyj0jjS1OMkYnepCdoosNY`*zmBIo*981BU%%U z@~$z0V`OVtIbEx5pa|Tct|Lg#ZQf5OYMUMRD>Wdxm5SAqV2}3!ceE-M2 z@O~lQ0OiKQp}o9I;?uxCgYVV?FH|?Riri*U$Zi_`V2eiA>l zdSm6;SEm6#T+SpcE8Ro_f2AwxzI z44hfe^WE3!h@W3RDyA_H440cpmYkv*)6m1XazTqw%=E5Xv7^@^^T7Q2wxr+Z2kVYr + + + + + + + + + + + + + + + + + + + + + +

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